# RiverWare_Model 7.1.4 Patch # Created 18:58 November 9, 2017 # CADSWES, University of Colorado at Boulder, http://cadswes.colorado.edu/ # # The catalog command is parsed by the RiverSMART # RiverWare model plugin: # - It must appear in the first 100 lines of the file. # - Lines up to and including it must not exceed 4K bytes. # - Its name must not change. Catalog {\ \ \ \ ${MIDC_RIVERWARE}/RiverWare Test DataV2.xlsx\ 2013\ \ ${MIDC_RIVERWARE}/Mid-C Output.xlsx\ Turbine Release\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ GCL Inflow Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Entiat River Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Methow River Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Wenatchee River Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Crab Creek Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Chelan River Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Okanogan River Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ CHJ Outflow Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ GCL Request Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ CHJ Request Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ NonFed Request Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ GCL TDG Forebay Forecast\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ ConstraintSatisfactionWithError\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ ConstraintSatisfactionNoError\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ Spill With Error\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ Spill No Error\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ Energy In Storage With Error\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ Energy In Storage No Error\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ Releases and Power With Error\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx\ Releases and Power No Error\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Observed Requests\ \ ${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx\ Initial Estimated Outflows\ \ \ ${MIDC_RIVERWARE}/Mid-C Input.xlsx\ 2013\ \ \ \ \ \ \ MidC Input Excel\ \ MidC Output Excel\ \ Grand Coulee Inflow Forecast,Chief Joseph Outflow Forecast,Grand Coulee Request Forecast,Chief Joseph Request Forecast,NonFederal Request Forecast,Okanogan River Forecast,Methow River Forecast,Chelan River Forecast,Entiat River Forecast,Wenatchee River Forecast,Crab Creek Forecast,Grand Coulee TDG Forecast\ \ MidC No Forecast Error Constraint Satisfaction Outputs,MidC No Forecast Error Energy In Storage Outputs,MidC No Forecast Error Releases and Power Outputs,MidC No Forecast Error Spill Outputs\ \ Grand Coulee Inflow Forecast,Chief Joseph Outflow Forecast,Okanogan River Forecast,Methow River Forecast,Chelan River Forecast,Entiat River Forecast,Wenatchee River Forecast,Crab Creek Forecast,Grand Coulee TDG Forecast,Actual Requests\ \ \ \ MidC Input Excel\ \ MidC Input Excel\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } # End Catalog ModelSimObjCount 44 ModelAccountCount 0 ModelSupplyCount 0 ModelExchangeCount 0 DST 0 $ws.Model.FileInfo saveInfo 1 {philw} {11-09-2017 18:58:35} {RiverWare 7.1.4} $ws.Model.FileInfo comment {Also need to update Model Version Global Function!

April 28, 2017
v3.0.0_2017.04.28
- 4 Project Coordination logic fully implemented
- Fix to Nonfed Request Adjustment init rule to correctly use Request Adjustment when input
- Fix to init rule setting Power LP Param line points to guarantee points are always increasing

April 27, 2017
v2.1.4_2017.04.27
- Fixes and Revisions to CJAD II Weekend Min Flow policies so that they appropriately add constraints in all cases
- Revisions to goals to set a low flow hour each Mon-Thurs during CJAD II to be effective when Priest Rapids Flow Band constraints are not tight
- Revised Wanapum and Priest Rapids Special Ops initialization rule to only use "wo Par Con" versions during Spawning Period

- Removed thermal object
- Revised Fish Spill goal to use simpler logic an be uniform for all projects
- Removed numerous unused policies and moved Federal policies that are now unused to a lower priority policy group that is deactivated

April 18, 2017
v2.1.3_2017.04.18
- Fix to Nonfed Request Adjustment init rule to set values through 24:00 of final day, prevent failure of Estimates and Fish Spill rules that relied on these values
- New script and enhancements to initialization rules for Data Validation for Extended Period

April 13, 2017
- Set Fish Spill Start Dates as follows:
WEL HE1 4/9 10 kcfs
RRH no spring fish spill
RIS HE1 4/17 from spill memos, default is 10%
WAN HE1 4/18 20 kcfs
PRD HE1 4/19 30 kcfs

April 13, 2017
v2.1.2_2017.04.13
- Nonfed Request is now checked against the sum of Special Ops Max Gen and Min Gen and adjusted to be within those limits if necessary

April 11, 2017
- Set WEL Summer Fish Spill Season Operations slot to start HE1 4/9/2017 and end HE24 8/19/2017. Will import 10 kcfs using Fish Spill Manual slot
- RRH no Spring Fish Spill, set Spring Fish Spill Percent Default to 0. Will import Fish Spill Manual slot in the summer.
- Set RIS Spring Fish Spill Season Operations slot to start HE1 4/15/2017. Will import Fish Spill Manual slot
- Set WAN Spring Fish Spill Season Operations slot to start HE1 4/15/2017.
- WAN spring spill amount default = 20 kcfs, unchanged
- Set PRD Spring Fish Spill Season Operations slot to start HE1 4/15/2017
- Set PRD Spring Fish Spill Default = 28 kcfs
- No longer importing WAN and PRD Fish Spill Slots

April 10, 2017
v2.1.1_2017.04.10
- Revisions to Minimize Spill policy to only apply time priorities for the final levels which try to reduce spill to zero
- Revisions to rules that write out Baseline run values to no longer include Federal outputs


April 7, 2017
v2.1.0_2017.04.07
- New approach for Federal system - only models CHJ Outflow, set by initialization rule based on Discharge Estimate and shaped by Request, and then adjustments for Bias
- Elevation margins relaxed at the beginning of the run if a project starts outside of the margin
- Refined pre-run estimates, which significantly reduces approximation error in the Max Gen constraints
- Revised default Fish Spill logic for Well, Wanapum and Priest Rapids

Mar 24, 2017
- Revised res.Data Validation hydrologic Inflow Adjust to -25/+25 min/max due to logic problem in data validation

Mar 21, 2017
- v2.0.21_2017.03.21
- Turned off CHJ Discharge Adj Balance of Day Hourly to Match Daily Discharge Est, by Mitch at CADSWES

Mar 20, 2017
-Special Ops Max Gen Revision by Mitch at CADSWES

Mar 16, 2017
- Temporary HE3 Fix2a Initialization Goal Changed March 12 to March 15

Mar 13 20173e
- Turn off Flow Band With Check Against RiverWare Calculated Band Width
- Proportional draft by Volume all projects

Mar 13, 2017d
- Turned on Stranding Band Goals

Mar 13, 2017c
- Added additional failure count slots

Mar 13, 2017b
- Started with model from Mar 9 with and wo Par Con for Min Pool Elevation, and the imported Logic with HE3 Fixes added over Mar 10-13.
- Does not include WAPR pool elevation margin set to zero, since will not be operating to WAPR min and max pool elevations.

Mar 9, 2017
_ Added slots for WAN and PRD w and wo Par Con for Min Pool Elevation, and Max/Min Outlfow
- Revised Set Wanapum and Priest Rapids Special Ops goal by adding WAN and PRD wo Par Con for Min Pool Elevation, and Max/Min Outlfow
- Added WAN and PRD w and wo Par Con for Min Pool Elevation, and Max/Min Outlfow to data validation, still turned off

Mar 8, 2017
- v2.0.21_2017.03.08b Stranding band report
- Create Priest Rapids Constraints.Daily Flow Band Range and Daily Flow Band Range Allowable expression slots, added to Stranding Band Output Tabular Series Slot Report
- Created Stranding Band Input and Output Tabular Series Slot Reports, Priest Rapids Graph w Stranding Bands, Stranding Band Report.
- Added Stranding Band Input and Output Report, and Priest Rapids Graph w Stranding Bands II to RICO Script
- included temporarily turn off data validation due to 23 hour day five days out on side flows

Mar 7, 2017
v2.0.21_2017.03.07b - Temporarily turn off data validation due to 23 hour day five days out on side flows

Mar 6, 2017c
- Changed Initialization Rule "Set Wanapum and Priest Rapids Special Ops" so that Post Hatch period is excluded. We want participant constraints to apply during post hatch, but not RLF or stranding bands. See description note dated 2017-03-06c in the Set Wanapum and Priest Rapids Special Ops initialization goal.
- Swapped Proportional Reservoir Draft Volume (now before) and Equal Flows Across Projects (now after)

Mar 6, 2017
-Started with v2.0.21_2017.03.02, then brought that model up to date with Scott's revisions from Feb 23 to Feb 28 (listed below March 2 update from Mitch)
- Revised Nonfederal Data.Spill Minimization Table No Fish Spill to be
100-100-100-100-100
60-100-100-100-100
60- 60-100-100-100
60- 60- 60-100-100
60- 60- 60- 60- 100
40- 40- 60- 60- 100
40- 20- 60- 60- 100
0- 20- 60- 60- 100
0- 0- 60- 60- 100
0- 0- 0- 60- 100
0- 0- 0- 0- 100
0- 0- 0- 0- 0

March 2, 2017 (from Mitch)
v2.0.21_2017.03.02
- Added Spill Exchange slots and policy
- Revision to Special Ops Max Gen constraints to prevent oscillations
- Daily High Flow Import Target now uses 0 kcfs for pseudo-NaN

Feb 28, 2017
- Added plot Priest Rapids Graph w Stranding Bands, to include .Daily High/Low Flow Import and .Daily High/Low Flow Import Target slots. Pool elevations only - Set start of Rearing and Emergence periods to start Mar 11 HE1, and for the Post Hatch Period to end Mar 10, HE24

Feb 27, 2017
- Revised NonFederal Data.Uncertainty Margin Parameter for Max Elev from 0.1 ft to 0.0 ft, too conservative at 0.1 ft
- Revised Rock Island Constraints.Target Operating Range from 1.0 ft to 0.5 ft to more closely mimic actual operations
- Also revised data input for Priest Rapids Constraints.Special Operations Min Outflow from 70 kcfs to 75 kcfs. Always operate to a minimum of 75 kcfs.

Feb 23, 2017
- Revised Chief Joseph Data Validation.Accum Exchange Min Min from -500 to -10,000
- Revised Chief Joseph Data Validation.Accum Exchange Min from -500 to -10,000
- Turned off System Content Targets (Maximize 0600 Content each day)
- Equal Flows Across Projects goal includes all projects - Proportional Reservoir Draft Volume goal does not include PRD

Feb 22, 2017
- Added Pool Elevation, Regulated Spill and Desired Elevaton Target to Data Validation
- Fixed bad timestep reference in FlowBand function

Feb 19, 2017 - sjb
- Revised data validation Special Operations hard and soft constraints Maximum Outflow, Spill, and Turbine Release to all be 400 kcfs, for plotting. Cleans up graphs. Matching EAS data entry complete.
- Revised Nonfed Pool Elevation Max Margin Defaults to be balanced by volume, used 0.2 ft at Wan as base, matched others to provide same volume
- WEL = 0.24 ft
- RRH = 0.34 ft
- RIS = 0.2ft no change since not in play
- WAN = 0.2 ft
- PRD = 0.42 ft
- Therefore needed to change NonFederal Data.Max Elevation Margin Limit to 0.42
- NonFederal Data.Uncertainty Margin Parameter for Max Elev stays at 0.10
- Revised Post Hatch Period End Data to Mar 2, HE24
- Revised Rearing and Emergence Periods to Start Mar 3 HE1
- Added output path & file name for Data Validation Report: D:\RiverWareData\RW_PLOTS\Data Validation Report.html

February 9, 2017
v2.0.19_2017.02.09
- Data Validation messages now include EAS account number and name
- Model version number now reported in diagnostic messages
- New constraints for Priest Rapids Daily Low and High Flow Import Targets for Stranding Bands
- New constraints to minimize Priest Rapids Daily Low Flow during CJAD II Mon-Thurs
- New constraints for System Content Targets at each hour ending 6
- Priest Rapids Flow Change Across Midnight (for Stranding Bands) turned off and moved to lower priority
- Reshape Bias Policy moved to higher priority
- Updates to operational season dates and parameter values provided by Scott Buehn as follows:
- Bias Ramp Max changed from 1800 MW to 50 MW
- Nonfederal Projects Outflow Ramp Limit Up and Down reduced from 5 kcfs to 2.5 kcfs
- End date for Post Hatch Period set to Feb 19 HE 24
- Start date for Emergence Period set to Feb 20 HE 1
- Start date for Rearing Period set to Feb 20 HE 1
- Nonfederal Data.Max Elevation Margin Limit reduced from 0.4 ft to 0.2 ft
- Nonfederal Data.Min Elevation Margin Limit reduced from 4.0 ft to 1.0 ft

Feb 1, 2017
Populated all data validation slots, again

Jan 28, 2017 sjb
Reset Dates.Rearing Period Operations to Jan 20

January 18, 2017
v2.0.18_2017.01.18
- New Minimize Spill policies:
- Minimize Nonfed Spill by Time Blocks Full Table (currently active) - Prioritizes early timesteps higher than later, in each time block it uses a separate priority for each row in the spill table (one table for fish spill season another table when not in fish spill), more than doubles run time
- Minimize Nonfed Spill All Timesteps Equal, Full Table (currently inactive) - One priority for each row in the table (one table for fish spill season another table when not in fish spill) but all timesteps are weighted equally so it can spill more early in the run
- Minimize Nonfed Spill Single Priority - weights spill relatively equally in time and location
- Minimize Nonfed Spil by Time Blocks Weighted Downstream - Prioritizes early timesteps higher than later, weights spill so that it tends to spill more downstream

- Pool Elevation Margins now use separate parameter values for Min and Max elevations, and a limit is now set on the margin

- Outflow Ramping Limits wo PRD implemented as Summation with Reward Table to reduce run time

- CHJ Discharge Estimate now includes checks for a minimum value (all timesteps on first day) and a ramping limit on the Start Timestep

- RRH and RIS use not fish spill default values based on shaping estimated flow

- Check for failed Sim and Opt runs added so that the post-opt RBS will just stop instead of setting bogus values

January 19, 2016
-Revised Hydrologic Inflow Adjust values. Prior they were all +10.0 to -10.0 for GCL to PRD. Now GCL = 0, then get larger from CHJ to PRD, from +/- 5 to +/- 15 at PRD.

January 5, 2017
v2.0.17_2017.01.05
- Added missing Freeze statement into No Excess Spill goals

January 3, 2017
- Revised plots and graphing Model Reports to start at start timestep - 1 (= init time), rather than start timestep, so the intial value at init time is shown on the left axis.

December 29, 2016
- set Chief Joseph Data Validation.Discharge Estimate Initial Min to 10 kcfs and Max to 500 kcfs
- Revised Chief Joseph Data Validation to use Chief Joseph Constraint.Discharge Estimate Initial, rather than Priest Rapids Constraints.CHJ Forecast Estimate, per Mitch
- Had to disable as it is looking for t-1 to current init hour. Needs to be looked at.
- Revised Optimization Goals to not balance to PRD outflows or draftbyvolume


December 22, 2016
v2.0.16_2016.12.22
- Import slots added for flow bands to allow user overrides
- Flow Bands Import
- Daily High Flow Import
- Daily Low Flow Import
- Added post-process calcs of min/max allowable each hour with Flow Bands and daily high and low flows

December 21, 2016
v2.0.15_2016.12.21
- Promoted to RiverWare version 7.0
- Data Validation extended for all input slots

December 19, 2016
v2.0.14_2016.12.19
Run Time Improvements
- Reformulation of Minimize Nonfed Spill policy - two alternatives: Single Prioirty or Spill Minimization Table Condensed
- Clean up execution of Initializaiton Rules and Post-opt Rules

December 14, 2016
v2.0.13_2016.12.14
- Nonfed Max Gen constraints are now written as a constraint on Turbine Release to reduce approximation error.
- Nonfed Power LP Param Line approximation points are now set by an initialization rule to reduce approximation error.
- Calculations for slots on the Constraint Evaluation object were updated to reflect current policy formulations and are now done by rules rather than expression slots.
- Chief Joseph Discharge Estimate for the first day of the run is now updated based on the actual Outflow thus far in the day so that the daily total given the actuals will match the daily total of the original estimate.
- Slot name changes for Wanapum and Priest Rapids Special Ops Slots: Raw -> w Par Con, wo Fish Ops -> wo Par Con
- Bias Revised Limits use a new approach - prevent Bias from causing Federal or Nonfederal generation from coming to close to their respective min or max capacities.
- The Outflow Ramping Limit goal is now formulated as a Summation with Reward Table instead of Repeated Maximin.
- Sideflows are now included in Inflow Estimate calculations that get used in Outflow and Pool Elevation calculations.

December 12, 2016
- Revised Constraints.Pool Elevation Max Margin Defaults from 0.1 to 0.2 ft, and Min Margin Default from 0.1 to 0.25 ft.
- Updated Operational Pre-Hatch, Spawning, Post-Hatch, Rearing, CJAD, CJAD II, Rearing and Emergen Periods start and end dates.

November 30, 2016
Added Nonfederal Data.RW Testing and Nonfederal Data.RW Testing 2 slots. For DMI input timing testing. And plot enhancements also, I think. sjb
November 16, 2016
Model Revisions:
- Data Validation checks now use scalar slots for the Min and Max checks. Appropriate changes were made in initialization rules and functions.
- Initialization rule Populate Validation Limits was deleted (previously populated elevation limits with License Min/Max). This is no longer used now that Data Validation limits will be stored in scalar slots on the Data Validation objects.
- Incorporates new Data Validation slots on Wells Data Validation as provided by Scott Buehn
- Incorporates a fix to the Set Wanapum and Priest Rapids Special Ops initialization rule as provided by Scott Buehn. This prevents the conditions when checking for the Post Hatch and Rearing Periods from incorrectly overwriting conditions from the Spawning Period check.
- The Set Wanapum and Priest Rapids Special Ops initialization rule was moved to a priority below the Data Validation rules so that the Wanapum and Priest Rapids Special Operations slots are populated before the data validation checks. This prevents these slots from failing the existing data validation checks. Eventually we will want to add separate data validation checks for the Special Operations Raw and Special Operations wo Fish Ops slots, but they have not yet been included.


November 11, 2016
-Modified Global Funtion IsRearingPeriod, to emulate IsEmergencePeriod (didn't have to span acroos Dec31/Jan 1)
-Changed following slot names on Nov 8 (did this to differentiate between actual bias and scheduled bias, scheduled bias is when an operator commits with BPA, then it is scheduled. Actual is corrected up for the hour, so it will often not be exactly what is scheduled):
- Grand Coulee Constraints.Bias to Grand Coulee Constraints.Bia Actual
- Chief Joseph Constraints.Bias to Chief Joseph Constraints.Bias Actual

November 8, 2016 by sjb
Downlaoded Mid-Columbia_v2.0.11_2016.11.08.WithData_2016.10.26.HE14 from CADSWES
-Found out that Min Gen requirements are added during PostHatch and Rearing Periods
-Renamed WAN/PRD Special Operations Max Pool Elevation wo RLF to Special Operations Max Pool Elevation wo Fish Ops
-Renamed WAN/PRD Special Operations Max Generation wo RLF to Special Operations Max Generation wo Fish Ops
-Added WAN/PRD Special Operations Min Generation wo Fish Ops slots
-Added Global Funtion IsRearingPeriod, to determine if time/date is within the rearing period from Mar 31 to Jun 15)
-Added WAN/PRD Special Operations Min Generation Raw slots
-Added policy to intiailzation rule set "Set Wanapum and Priest Rapids Special Ops", for max and min gen during PostHatchPeriod and RearingPeriod

November 8, 2016
v2.0.11_2016.11.08

Summary of revisions:
New Priest Rapids Plant Power Table
Fix to Special Operations Soft Min Spill reference in Required Spill initialization rule
Reformulation of how Wanapum and Priest Rapids Special Operations Pool Elevation and Generation get set
Renaming of Accumulated Exchange constraint slots
Reformulation of how Bias inputs are specified and used

Details:

-Priest Rapids Plant Power Table
The table was replaced with the version in an email from Andy Law (10/31/2016 Subject: RE Updated Priest Rapids Plant Performance Table). This is the same as the version in the model provided by Scott Buehn on 11/1/16 (Mid-Columbia_v2.0.10_2016-10-31_sjb.mdl).

-Fix to Special Operations Soft Min Spill reference in Required Spill initialization rule
The rule incorrectly referenced Special Operations Min Spill where it should have referenced Special Operations Soft Min Spill. This has been corrected.

-Reformulation Wanapum and Priest Rapids Special Operations Pool Elevation and Generation
Data gets imported into the model from the EAS system mapped as follows into new slots
WAN_MAX_FBAY_ELEV_FT -> Wanapum Constraints.Special Operations Max Pool Elevation Raw
WAN_MAXIMUM_GEN_MW -> Wanapum Constraints.Special Operations Max Generation Raw
PRD_MAX_FBAY_ELEV_FT -> Priest Rapids Constraints.Special Operations Max Pool Elevation Raw
PRD_MAXIMUM_GEN_MW -> Priest Rapids Constraints.Special Operations Max Generation Raw
WAN_MAX_FBAY_ELEV_WO_RLF_FT -> Wanapum Constraints.Special Operations Max Pool Elevation wo RLF
WAN_MAXIMUM_GEN_WO_RLF_MW -> Wanapum Constraints.Special Operations Max Generation wo RLF
PRD_MAX_FBAY_ELEV_WO_RLF_FT -> Priest Rapids Constraints.Special Operations Max Pool Elevation wo RLF
PRD_MAXIMUM_GEN_WO_RLF_MW -> Priest Rapids Constraints.Special Operations Max Generation wo RLF
A new initialization rule, "Set Wanapum and Priest Rapids Special Ops," sets the appropriate slot values in the Special Operations slots that get used in constraints.
During RLF (determined by new function called IsSpawningPeriod), the initialization rule sets the "wo RLF" values in the constraint slots. These will contain only "true" special operations for maintenance, outages, etc. Outside of RLF the "Raw" values will get used. Plots include the "Raw" slots for reference along with the Special Operations slots used in the constraints. Nothing changed in the actual opt goal logic.

-Renaming of Accumulated Exchange constraint slots
Slots used in Accumulated Exchange constraints were renamed to make their meaning more clear.
These name changes apply for Grand Coulee Constraints, Chief Joseph Constraints and Federal Constraints:
Old Slot Name -> New Slot Name
Accumulated Exchange Max -> Accumulated Exchange Max Default (Scalar slot)
Accumulated Exchange Min-> Accumulated Exchange Min Default (Scalar slot)
Accumulated Exchange Limit -> Accumulated Exchange Max (Series slot)
Also a new series slot was added to all three objects:
Accumulated Exchange Min (Series slot)

These slots are all used in the high priority Bias Formal Limits, Accumulated Exchange Limits goal with the following logic:
IF (IsInput Accumulated Exchange Max[t])
Accumulated Exchange[t] <= Accumulated Exchange Max[t]
ELSE
Accumulated Exchange[t] <= Accumulated Exchange Max Default[]

Similar logic is also applied for the Min, but the Min Default (0 MWH) is only applied for the combined Federal Accumulated Exchange (i.e. project minimums are only applied if specified in the new series slot). This is the same as the previous model logic. IT prevents the combined Federal Accumulated Exchange from being negative, but the individual project Accumulated Exchange can be negative unless restricted by an input in the Accumulated Exchange Min series slot.
No changes were made to the logic and slots for the lower priority Target Accumulated Exchange Limits policy.

-Reformulation of how Bias inputs are specified and used
The Bias Input and Bias Flag slots are no longer used. Scheduled Bias will now be imported to the Bias Scheduled slot on Grand Coulee Constraints, Chief Joseph Constraints and Federal Constraints. (The Federal Constraints Bias Scheduled is not expected to be used at this time, but the slot and logic are in place so that it can be used if data are imported to it.) The high priority Bias Formal Limits, Accumulated Exchange Limits goal now checks if Scheduled Bias is input (and not equal to 9999 MW). If it is input, it constrains Bias to be equal to that value, checking it against the positive and negative limits. Otherwise, it will just set constraints for the positive and negative limits. This effectively replaces the logic that used Bias Input and the Bias Flag with similar logic but new slots. Corresponding changes were made to the Reshaped Bias policy to use the new slots instead of Bias Input and Bias Flag.

New Bias Scheduled for Plotting slots were also added and included in Bias plots. An initialization rule sets this slot equal to Bias Scheduled unless it contains 9999 MW (used as NaN). If Bias Scheduled contains 9999 MW, then the "for Plotting" slot is left empty on that timestep to prevent problems with the 9999 MW values skewing the plot axes.

A new Bias Actual slot was added to Grand Coulee Constraints, Chief Joseph Constraints and Federal Constraints. These will contain actual observed pre-run Bias values imported via DMI. A new initialization rule sets the values from the Bias Actual slots in the Bias slots to be used in Reshaped Bias policies that look at Bias on earlier timesteps. If the Federal Constraints.Bias Actual slot does not have values, the init rule will use the sum of the GCL and CHJ values.

November 1, 2016
Fixed mismatch in thrid with statement of initialization goal #3 for Special Operations Min Spill to Special Operations Soft Min Spill


October 31, 2016
Model v. 2.0.10_2016.10.28
This model contains input data from 10/26/2016 HE 1400, so that it is within the Reverse Load Factoring season.

This version includes all of the revisions in the model you sent on 10/30 (Mid-Columbia_v2.0.9_2016.10.26.Testing_sjb.mdl).

Summary of Revisions:
- New RLF Capacity and RLF Elevation slots on Priest Rapids Constraints and Wanapum Constraints data objects
These slots were added to the Elevation and Generation plots. The slots are intended to hold the timeseries that are currently getting imported into the Special Operations Max Pool Elevation and Special Operations Max Generation slots, which currently include both "RLF guidance" values and "true" special operations (e.g. for maintenance, outages, etc). At that point the Special Operations slots will only receive the "true" special operations values. The new slots are not used in any policy expressions. They are only used in plots. They can simply remain empty until they are added to the DMI import process and will not cause any issue.

- New RLF Daylight Max Flow and RLF Daylight Min Flow series slots on Vernita Bar Constraints data object
Any values in these new series slots will override the the RLF Daylight Max Flow Default and RLF Daylight Min Flow Default (scalar slots, previously called Spawning Period Max Daylight Flow and Spawning Period Min Daylight Flow). The Default values in the model (currently 59 kcfs for Min and Max) will continue to get used until the new slots are added to the DMI import process and are populated with values. The current model logic will remain, in that the solution will spill if necessary to get down to the Daylight Max. At a lower priority (below minimize spill) the solution will try to keep the flow at the Daylight Min for all daylight hours, but it will not spill to do so.

- New Policy to keep Priest Rapids Outflow constant during RLF Daylight hours within a given day
This was added in a new policy group called RLF Daylight Flows Constant. Each day is constrained separately. The Daylight flows within a given day must be equal but do not necessarily need to equal the flows on the next day (based on this constraint). These new constraints are currently at a priority below the high priority RLF constraints to be within the min and max for all daylight hours, and they are below the constraints to meet Nonfed Requests. They are currently above the minimize spill constraints. You should review their priority to make sure that it is appropriate.

- RLF constraints are now prioritized in day order
There are three policy groups for RLF constraints: Spawning Period Reverse Load Factoring, RLF Daylight Flows Constant (new in this version) and Spawning Period Reverse Load Factoring Target Max. Now within each of these policy groups, there is a separate goal for each calendar day, with the first day at the highest priority, then the second day, etc. There is a final goal in each group that lumps all days after the fourth day at a single priority just for the case that a run is carried out that extends past 72 hours. In typical 72 hour runs, this goal has no effect.

- Fix to Chief Joseph Elevation Constant constraint
The constraint was improperly formulated using <=. It has been corrected to ==.

- Correction to double For loop in Special Operations and Special Operations Soft Max Pool Elevation Constraints
The goals were looping over all Nonfed reservoirs twice. This had no adverse affect on the solution, but it could result in misleading information in the optimization solution analysis tool. The extra For loop was removed in both cases.

- Federal Special Operations constraints moved to their own policy group
Previously these were lumped with the Nonfederal Special Operations. Now they have been moved to a priority above the Federal Requests constraints. In one case, the old priorities were resulting in a violation of a Grand Coulee Special Operations Min Generation constraint due to the Chief Joseph Elevation Constant constraint. The Elevation Constant should be at a lower priority than the Special Operations.

- Priest Rapids Special Operations Tailwater constraints now formulated as constraints on Outflow
The Priest Rapids Tailwater Elevation is modeled as only a function of Priest Rapids Outflow, so the Tailwater constraints can be written as equivalent constraints on Outflow, which removes the approximation error associated with linearizing the Tailwater Table for Optimization. The goals now do a Table Interpolation to grab the Outflow value corresponding to the specified Tailwater value. The constraint is then written using this Outflow value.

As we agreed on the call, there is no change to how the opt goal logic handles the Special Operations Max Pool Elevation and Special Operations Max Generation during Reverse Load Factoring. Those changes are to be made in the process that constructs the time series to import to the Special Operations slots. Until those processes are revised to exclude the "RLF guidance" values from the Special Operations time series, it is expected that the model will continue to produce undesirable results during RLF.

Mitch

October 25, 2016
Set Verniat Bar Constraints.Vernita Bar Min Flow ro 42 kcfs to 50 kcfs (due to redd counts already at 42 and above).
Corrected Min Spill goal, had extra space in "Special Operations Min__Spill" and " Spill" to "Spill"

October 24, 2016
Imported enhanced GrandCouleeBias plot
Added Special Operations Min and Max Spill slots to GCL and CHJ Constraints data objects.

October 20, 2016
Added Special Operations Min and Max Spill Policy Goals (they were missing in the model).
Started to add Data Validation slots for Wells

October 17, 2016
Here is a model with the fix for the run failure that you saw in production: v2.0.9_2016.10.14.

Here are the changes since v2.0.8:

- Fix to Set Chief Joseph Discharge Estimate initialization rule
The rule now sets Chief Joseph Constraints.Discharge Estiamte through Finish Timestep + 24. Previously it was just through the Finish Timestep. This allows later rules that set Pool Elevation Margin to work correctly. These later rules need the Discharge Estimate through the end of the calendar day.

- Change to logic for Bias Flag in Bias Formal Limits, Accumulated Exchange Limits
This change was provided by Scott Buehn on 10/13/16
Now
IF Bias Flag = 1
Set Bias equal to Bias Input
ELSE
Let the model solve for Bias

- Change to ReshapedBias function corresponding to the change in meaning for Bias Flag above
This only affects runs for which Reshape Bias for HK Objective policy is active

- Incorporated changes to Nonfed Generation plots
The Nonfed Generation Baseline curves were removed. These changes were provided by Scott Buehn 10/13/16. The revised plots were imported into the model.

I also wanted to point out that the default activation in the goal set is that Bias Revised Limits goal is inactive, and the Desired Elevation Table policy is the only lower priority objective that is active. These were the settings in the model you sent on 10/13/16, so I assume those are the intended default settings. This version of the model has those same default settings.

October 14, 2016
Model Version Mid-Columbia_v2.0.9_2016.10.14.WithData_2016.09.27.HE10.mdl with data loaded 2016-09-27_1021 hours by sjb.

- Fix to init rule to set CHJ Discharge Estimate for Finish + 24 hrs, necessary for Pool Elevation Margin calcs
- Revision to ReshapedBias function to correctly use BiasFlag with change to Bias Flag meaning

October 13, 2016
- changed the flag number from 2 to 1 in goal 14, so
flag 0 = calculate bias for that hour, and do not use input values
flag 1 = use input value for that hour, and do not calculate bias
-Updated plots by turning of approx non-fed gen on the "Generation Requests vs Forecast plots, from "Nonfed Pool Elevation" to "NonFed Power".

October 11, 2016
Model Version Mid-Columbia_v2.0.8_2016.10.11.WithData_2016.09.27.HE10.mdl with data loaded 2016-09-27_1021 hours by sjb.

- New Sunrise and Sunset values
- Revised plots provided by sjb imported

October 10, 2016
Model Version Mid-Columbia_v2.0.7_2016.10.10.WithData_2016.09.27.HE10.mdl with data loaded 2016-09-27_1021 hours by sjb.

Contains new policy to reshape Bias to use increments, minimum block duration, and minimum positive/negative cycle durations

2016-10-04 (see email dated 10-4-16 3:10 pm)

Sent a file to mitch named Mid-Columbia.Scott_Development_Starting_2016-09-27.mdl.

Then copied the file to Mid-Columbia.Scott_Development_2016-10-04.mdl to use for development while Mitch is working on his. I will keep changes to a minimum to reduce merging issues next week.

. Summary of changes is as follows to the 2016-10-04 version:
? Created/revised Nonfed Energy in Storage and Nonfed Energy in Storage Cumm plots
? Added Nonfed H/K baseline slots, and plotted on Nonfed H/K plot
? Added/changed scripts for setting up baseline runs
? Pulled Min Bias Delta and Min Outflow Delta out of H/K Objective goal for simplicity
? Added tailwater elev to RBS baseline slots all reservoirs
? Added EAS account descriptions to Desired Elevation Targets
? Updated slot formulas for Constraint.Evaluation.Nonfed Request Deviation and Fed Request Deviation
? Updated the following plots:
?

September 27, 2016
Model Version Mid-Columbia_v2.0.6_2016.09.27.WithData_2016.09.23.HE10.mdl with data loaded 2016-09-27_1021 hours by sjb.

Contains new policies including:
Maximize 0600, Pool Elevation Ramp Limits, Default Reservoir Draft Table, Proportional Reservoir Draft Volume, Equal Flows Across Projects, Uniform Reservoir Draft feet, HK Objective. Also automating alternatives with Scripts.


Model Version: v2.0.6_2016.09.27

August 18, 2016
-Imported Tim's revised Initialization Ruleset to address divide by zero problem. Root cause was zero values in special operation max turbine slots, and other special operation slots.
-Added nonfed constraints.Special Operations Max Spill slots
-Imported tabular series slot reports

August 15, 2016 sjb
Imported graphs, tables, model reports, and scripts for use in RICO
Plots&Model Reports = Plots and Model Report Exports 2016-08-15
Script = Build_RICO_Model_Reports_Script_2016-08-15

August 8, 2016 sjb
From: Mitch Clement [mailto:mitch.clement@Colorado.EDU]
Sent: Monday, August 08, 2016 1:20 PM
To: Buehn, Scott; Joe.R.Taylor@shell.com; Law, Andrew (Shell); Coe, Will (GCPUD); Frantz, Mike; Sal Mugnos
Cc: Edith A Zagona; Tim Magee
Subject: Updated MidC model file v2.0.1_2016.08.08

Chelan County PUD IT Warning:
Please use caution! This is an external email with links or attachments.

Scott and all,
I have attached an updated Mid-C model file. This is the version of the model we were looking at this morning.

One note - we recommend that you upgrade to RiverWare 6.9.3, which should be out later this week. This model has new user-defined variables for H/K which have a unit of MW/kcfs. There were previously no optimization variables with this unit type, and in 6.9.2 there is an error message that gets issued every time one of these variables gets referenced in the model. The message is about there being no preferred opt unit for the specified unit type. There is no effect on the solution that we have identified, just a high volume of messages. In RiverWare 6.9.3, this has been addressed, and the error messages will not be issued. In short, you can still run the model with 6.9.2, but you will receive a high number of messages. With 6.9.3, the messages will be eliminated.

Here is a summary of the changes since model version 2.0.0.

- Target Bias and Target Accumulated Exchange constraints are now in separate goals. They are at consecutive priorities in their same location, so this has no effect on the solution for now, but it allows them to potentially be reprioritized individually later.

- Special Operations Soft constraints were implemented. Scott Buehn provided these. They have the same form as the existing Special Operations constraints but are at a lower priority (below Nonfederal Requests).

- Fish Spill constraints now look for the Fish Spill Manual slot rather than Special Operations Min Spill. This was requested by Scott Buehn. There is still default behavior present if no Fish Spill Manual value is present (or is zero) because it does not appear that the model is always receiving Fish Spill Manual values for all projects for all 72 timesteps. There is still a Special Operations Min Spill constraint at a lower priority as well.

- Request Adjustment slots add for Nonfed, Grand Coulee and Chief Joseph along with corresponding initialization rules: Total Nonfed Request[t] = Initial Nonfed Request[t] + Nonfed Request Adjustment[t]
This was requested by Scott Buehn. Currently Total Nonfed Request is being given to the model as an input, so this new slot and init rule do nothing. The inputs given to the model will need to be changed to Initial Nonfed Request and Nonfed Request Adjustment for this to have an effect. (Likewise for Grand Coulee and Chief Joseph).

- Pre-processing calculations were moved out of expression slots to initialization rules. This was necessary in preparation for initialization rules for the new H/K objective. It also makes it easier to manage and read the pre-processing logic. This includes Federal Request Adjustment, Revised Bias Limits, and Pool Elevation Margins.

- New objective to maximize weighted H/K. This new objective is described in the earlier document provided by Tim, Maximize H over K Objective.docx (6/28/16). Initialization rules set up a grid of H/K values as a function of Operating Head and Turbine Release. New goals define new H/K variables and weighting variables. A new goal was added at a low priority with the new objective to maximize the sum of H/K at all projects for all timesteps, weighted to give higher "value" to H/K for high Request periods.

Let us know if you have any questions.

Mitch } $ws.Model.RunHistoryParam MaxModelRunHistoryRecs 1 $ws.AutoSave 1 0 0 15 {C:/Users/philw/AppData/Local/Temp/} none $ws.StringMgr 1 {\ \ } SaveOutputs 1 SaveExtPrecision 1 FlagEncoding 3 BaselineModel 0 ModelLockSet 0 ObjectListWidth 256 WsObjListOrderMode SORT_BY_NAME LockedIcons 0 SelWindowIcon {RwIconStandard} WorkspaceSize 6450 6450 AccountingSize 6450 6450 GeospatialSize 6450 6450 DisplayProperties 0 EpochBeginYear 1800 OverrideDefaultPlotAxesForVertDist 0 CurrCanvasType SIMULATION InitCanvasType SIMULATION InitCanvasSpec SIMULATION {\ \ \ \ } InitCanvasSpec ACCOUNTING {\ \ \ \ } InitCanvasSpec GEOSPATIAL {\ \ \ \ } WaterYearStartMonthIndex 9 YearNamedFromEnd SlotGroupsEnabled 1 SlotDlgPrefs {\ \ \ \ \ } $ws.runInfo pauseAtDate {04-27-2017 16:00:00} $ws.runInfo pauseAtPriority 48 $ws.runInfo setDescription {Model Run} $ws.runInfo runParam {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR $ws.runInfo setType 0 $ws.runInfo setResumedRun 0 {04-27-2017 15:00:00} $ws.runInfo typeOfMostRecentRun 2 $ws.runInfo setActiveCategories 1 0 $ws.runInfo setInlineCategories 1 0 $ws.runInfo setMaxSimIterations 40 $ws.runInfo setMaxAcctIterations 20 $ws.runInfo setSeriesExtensionIncrement 1 $ws.runInfo setWarnOutOfBounds 0 $ws.multiRunInfo setDescription {Model Run} $ws.multiRunInfo runParam {12-20-2010 12:00:00} {12-21-2010 12:00:00} 6 HOUR $ws.multiRunInfo setType 3 $ws.multiRunInfo setResumedRun 0 {12-20-2010 18:00:00} $ws.multiRunInfo setActiveCategories 1 0 $ws.multiRunInfo setInlineCategories 1 0 $ws.multiRunInfo setMaxSimIterations 20 $ws.multiRunInfo setMaxAcctIterations 20 $ws.multiRunInfo setSeriesExtensionIncrement 1 $ws.multiRunInfo setWarnOutOfBounds 0 # Section: Unit Manager Section {Unit Manager} set unitMgr "$ws.UnitMgr" $unitMgr initScaledUnits 92 $unitMgr scaledUnit 0 {NONE} 1 {NONE} $unitMgr scaledUnit 1 {NONE} 1000 {NONE} $unitMgr scaledUnit 2 {Length} 1 {m} $unitMgr scaledUnit 3 {Length} 1 {ft} $unitMgr scaledUnit 4 {Length} 1 {feet} $unitMgr scaledUnit 5 {SqrtLength} 1 {m1/2} $unitMgr scaledUnit 6 {Area} 1 {m2} $unitMgr scaledUnit 7 {Area} 1 {acre} $unitMgr scaledUnit 8 {Volume} 1 {m3} $unitMgr scaledUnit 9 {Volume} 1 {acre-ft} $unitMgr scaledUnit 10 {Volume} 1 {kcfs-hr} $unitMgr scaledUnit 11 {Volume} 1 {cfs-hr} $unitMgr scaledUnit 12 {Volume} 1000 {cfs-hr} $unitMgr scaledUnit 13 {Volume} 1000 {m3} $unitMgr scaledUnit 14 {Volume} 1000 {kcfs-hr} $unitMgr scaledUnit 15 {Flow} 1 {cms} $unitMgr scaledUnit 16 {Flow} 1 {cfs} $unitMgr scaledUnit 17 {Flow} 1 {acre-ft/day} $unitMgr scaledUnit 18 {Flow} 1 {kcfs} $unitMgr scaledUnit 19 {Flow} 1000 {cfs} $unitMgr scaledUnit 20 {Flow} 1000 {cms} $unitMgr scaledUnit 21 {Flow} 1000 {kcfs} $unitMgr scaledUnit 22 {Flow} 1 {m3/day} $unitMgr scaledUnit 23 {FlowSquared} 1 {cms2} $unitMgr scaledUnit 24 {FlowPerSqrtLength} 1 {cms/m1/2} $unitMgr scaledUnit 25 {PerFlow} 1 {1/cms} $unitMgr scaledUnit 26 {PerFlow} 0.001 {1/cfs} $unitMgr scaledUnit 27 {PerFlow} 1 {1/cfs} $unitMgr scaledUnit 28 {PerFlow} 0.001 {1/cms} $unitMgr scaledUnit 29 {Power} 1 {MW} $unitMgr scaledUnit 30 {PowerPerFlow} 1 {MW/cms} $unitMgr scaledUnit 31 {PowerPerFlow} 1 {MW/kcfs} $unitMgr scaledUnit 32 {PowerPerFlow} 1 {MW/cfs} $unitMgr scaledUnit 33 {PowerPerFlow} 0.001 {MW/cfs} $unitMgr scaledUnit 34 {PowerPerFlow} 0.001 {MW/cms} $unitMgr scaledUnit 35 {Energy} 1 {MWH} $unitMgr scaledUnit 36 {Time} 1 {hr} $unitMgr scaledUnit 37 {Time} 1 {day} $unitMgr scaledUnit 38 {Time} 1 {sec} $unitMgr scaledUnit 39 {Time} 1 {hour} $unitMgr scaledUnit 40 {TimeSquared} 1 {hour2} $unitMgr scaledUnit 41 {Mass} 1 {g} $unitMgr scaledUnit 42 {Mass} 1 {tons} $unitMgr scaledUnit 43 {Heat} 1 {J} $unitMgr scaledUnit 44 {EnergyFlux} 1 {J/m2sec} $unitMgr scaledUnit 45 {MassFlux} 1 {g/m2sec} $unitMgr scaledUnit 46 {VolFlux} 1 {g/m3sec} $unitMgr scaledUnit 47 {Concentration} 1 {g/m3} $unitMgr scaledUnit 48 {Concentration} 1 {lb/ft3} $unitMgr scaledUnit 49 {AreaPerTime} 1 {m2/s} $unitMgr scaledUnit 50 {PerTime} 1 {1/sec} $unitMgr scaledUnit 51 {Temperature} 1 {C} $unitMgr scaledUnit 52 {LengthPerTemperature_F} 1 {m/F} $unitMgr scaledUnit 53 {TemperatureInFahren} 1 {F} $unitMgr scaledUnit 54 {SpecificHeat} 1 {J/gC} $unitMgr scaledUnit 55 {Velocity} 1 {m/s} $unitMgr scaledUnit 56 {VelocityPerTemperature_F} 1 {m/s-F} $unitMgr scaledUnit 57 {Density} 1 {kg/m3_dens} $unitMgr scaledUnit 58 {PowerCost} 1 {$/MWh} $unitMgr scaledUnit 59 {Value} 1 {$} $unitMgr scaledUnit 60 {ValuePerFlow} 1 {$/cms} $unitMgr scaledUnit 61 {ValuePerVolume} 1 {$/m3} $unitMgr scaledUnit 62 {LengthPerVolume} 1 {m/m3} $unitMgr scaledUnit 63 {LengthPerFlow} 1 {m/cms} $unitMgr scaledUnit 64 {LengthPerFlow} 1 {ft/cfs} $unitMgr scaledUnit 65 {LengthPerFlow} 1000 {ft/cfs} $unitMgr scaledUnit 66 {LengthPerFlow} 1000 {m/cms} $unitMgr scaledUnit 67 {LengthPerFlow} 0.001 {ft/cfs} $unitMgr scaledUnit 68 {LengthPerFlow} 0.001 {m/cms} $unitMgr scaledUnit 69 {PerLength} 1 {1/m} $unitMgr scaledUnit 70 {PerLengthTime} 1 {1/m-s} $unitMgr scaledUnit 71 {FlowPerLength} 1 {cms/m} $unitMgr scaledUnit 72 {VolumePerFlow} 1 {m3/cms} $unitMgr scaledUnit 73 {energyPerLength} 1 {MWH/m} $unitMgr scaledUnit 74 {powerPerLength} 1 {MW/m} $unitMgr scaledUnit 75 {Fraction} 1 {decimal} $unitMgr scaledUnit 76 {Fraction} 1 {percent} $unitMgr scaledUnit 77 {FractionPerFlow} 1 {decimal/cms} $unitMgr scaledUnit 78 {FractionPerLength} 1 {decimal/m} $unitMgr scaledUnit 79 {noDimension} 1 {m/m} $unitMgr scaledUnit 80 {VolumeSquared} 1 {m6} $unitMgr scaledUnit 81 {TimePerLength} 1 {s/m} $unitMgr scaledUnit 82 {FlowVolume} 1 {m6/t} $unitMgr scaledUnit 83 {FlowTime} 1 {cmshour} $unitMgr scaledUnit 84 {FlowPerTime} 1 {cmss} $unitMgr scaledUnit 85 {DateTime} 1 {FullDateTime} $unitMgr scaledUnit 86 {DateTime} 1 {MonthAndDay} $unitMgr scaledUnit 87 {DateTime} 1 {TimeOfDay} $unitMgr scaledUnit 88 {DateTime} 1 {DayOfMonth} $unitMgr scaledUnit 89 {DateTime} 1 {TimeOfMonth} $unitMgr scaledUnit 90 {DateTime} 1 {TimeOfYear} $unitMgr scaledUnit 91 {String} 1 {Text} $unitMgr end # Section: Unit Schemes "$ws.unitScheme" addUserScheme {\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } "$ws.unitScheme" activeUnitScheme {Scheme 1} "$ws.unitScheme" skipTransitionScheme true CanvasConfig SIMULATION IconLabelLocation {Below} CanvasConfig SIMULATION CanvasColor #ffffff CanvasConfig SIMULATION IconLabelFont {MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0} CanvasConfig SIMULATION IconLabelFontColor #000000 CanvasConfig ACCOUNTING IconLabelLocation {Below} CanvasConfig ACCOUNTING CanvasColor #ffffff CanvasConfig ACCOUNTING IconLabelFont {MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0} CanvasConfig ACCOUNTING IconLabelFontColor #000000 CanvasConfig GEOSPATIAL ProjDescription {} CanvasConfig GEOSPATIAL ProjectionUnitsString {NONE} 0 CanvasConfig GEOSPATIAL ProjHorizAxisText {x} CanvasConfig GEOSPATIAL ProjVertAxisText {y} CanvasConfig GEOSPATIAL GeoDescription {} CanvasConfig GEOSPATIAL GeoUnitsString {deg} 4 CanvasConfig GEOSPATIAL GeoHorizAxisText {long} CanvasConfig GEOSPATIAL GeoVertAxisText {lat} CanvasConfig GEOSPATIAL ProjWellKnownText {} CanvasConfig GEOSPATIAL CanvasLowerLeft 0 0 CanvasConfig GEOSPATIAL CanvasUpperRight 6450 6450 CanvasConfig GEOSPATIAL IconLabelLocation {Below} CanvasConfig GEOSPATIAL IconSize 40 CanvasConfig GEOSPATIAL CanvasColor #ffffff CanvasConfig GEOSPATIAL IconLabelFont {MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0} CanvasConfig GEOSPATIAL IconLabelFontColor #000000 CanvasConfig GEOSPATIAL DisplayScale 1 CanvasConfig GEOSPATIAL DisplayScaleFromImage 1 # Section: DMI (part one) set mgr "$ws.dmiMgr" "$mgr" numInvRec 0 # Section: New Time Series Text Annotation Notes set annoMgr "$ws.AnnoMgr" # Section: Objects Section {Objects} set obj {Wells} set o "$ws.Wells" $ws SimObj $obj {LevelPowerReservoir} 257 1388 {} 780 1732 482 923 "$o" geospatialCoords 0 0 482 923 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5026 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {EIS Table Lookup} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {Plant Efficiency Curve Release} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Stage Flow Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Stage Flow Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999995 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 5459.4880229375985 5714.3396422655987 5703.012903628799 5363.2107445247984 5366.0424291839981 5391.5275911167992 5411.349383731198 5332.0622132735989 5320.7354746367992 5300.9136820223985 5088.5373325823984 5153.666079743999 5264.1017814527986 5391.5275911167992 5484.9731848703987 5479.3098155519983 5340.557267251198 5077.2105939455987 4745.9034888191982 4777.0520200703986 5012.081846783999 5065.883855308799 5150.8343950847984 5232.9532502015991 5315.0721053183979 5292.4186280447984 @ 2 5300.9136820223985 5272.5968354303986 5332.0622132735989 5317.9037899775985 5128.1809178111989 5082.873963263999 4963.9432075775994 4740.2401195007988 4508.0419774463981 5402.8543297535989 5484.9731848703987 5470.8147615743983 5479.3098155519983 5402.8543297535989 5564.2603553279987 5963.5278922751986 5952.201153638398 6065.4685400063981 6082.4586479615991 5989.0130542079987 5643.5475257855987 5748.3198581759989 5802.1218667007988 5804.9535513599985 5850.2605059071984 5909.7258837503978 5867.2506138623985 5354.7156905471984 5295.250312703999 5334.8938979327986 5363.2107445247984 5357.5473752063981 @ 2 5380.2008524799985 5397.1909604351986 5388.6959064575985 5349.052321228799 5346.2206365695993 5326.3988439551986 5346.2206365695993 5340.557267251198 @ 2 5343.3889519103986 5374.5374831615991 @ 2 5346.2206365695993 5374.5374831615991 5380.2008524799985 5402.8543297535989 5380.2008524799985 5374.5374831615991 5380.2008524799985 5428.3394916863981 5479.3098155519983 5405.6860144127986 5484.9731848703987 5442.4979149823985 5343.3889519103986 5317.9037899775985 @ 2 5207.468088268799 5298.0819973631988 5323.5671592959989 5320.7354746367992 5315.0721053183979 5320.7354746367992 5283.9235740671984 5286.7552587263981 5306.5770513407988 5309.0887556335092 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 135535188.19101715 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 235.01604000000023 238.33836000000028 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 237.34132872000026 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 11 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 27 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 6 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 12 "$s" resize 21 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 235.00080000000025 0 "$s" row 1 235.30560000000025 9562032.757186573 "$s" row 2 235.61040000000025 20592010.841702428 "$s" row 3 235.91520000000025 31326361.047797807 "$s" row 4 236.22000000000025 42183040.031170622 "$s" row 5 236.52480000000025 54273200.852090955 "$s" row 6 236.67720000000025 60379445.651189841 "$s" row 7 236.82960000000026 66485690.450288735 "$s" row 8 236.98200000000026 72469606.472110182 "$s" row 9 237.13440000000026 78453522.493931636 "$s" row 10 237.28680000000026 85100052.726005867 "$s" row 11 237.37824000000023 89096126.117068931 "$s" row 12 237.43920000000026 91766971.087626368 "$s" row 13 237.59160000000026 98984368.946995333 "$s" row 14 237.74400000000026 106201766.80636431 "$s" row 15 237.89640000000026 113531299.37823761 "$s" row 16 237.98784000000023 117924941.29545233 "$s" row 17 238.04880000000026 120860831.95011088 "$s" row 18 238.20120000000026 128200558.5867573 "$s" row 19 238.35360000000026 135540285.22340372 "$s" row 20 243.84000000000026 256890432.28262433 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1037 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 12.512040000000013 23.759160000000026 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 214.28964000000022 225.75012000000024 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 26.816053722623995 28.543381364735993 34.121800143359991 @ 95 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 0 @ 24 283.1684659199999 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 48 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 235.00080000000025 11355.055483391998 "$s" row 1 238.35360000000026 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 46 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 7538.9499999999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 16 "$s" resize 12 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 235.00080000000025 0 "$s" row 1 235.30560000000025 463 "$s" row 2 235.61040000000025 1014 "$s" row 3 235.91520000000025 1572 "$s" row 4 236.22000000000025 2158 "$s" row 5 236.52480000000025 2807 "$s" row 6 236.82960000000026 3487 "$s" row 7 237.13440000000026 4178 "$s" row 8 237.43920000000026 4970 "$s" row 9 237.74400000000026 5827 "$s" row 10 238.04880000000026 6718 "$s" row 11 238.35360000000026 7539 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 33 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16)

CADSWES added rows for 0 flow and 0 power (required by RiverWare). CADSWES removed the low flow rows at each operating head to make the curves concave (required by RiverWare). CADSWES added extended the table to add rows for operating heads below 45 ft. This is only to prevent table interpolation errors at intermediate points in the solution. The final solution will not end up in this range. (These are not real power curves.)} "$s" resize 178 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 11.582400000000012 0 0 "$s" row 1 11.582400000000012 2133.1080537753592 250 "$s" row 2 11.582400000000012 4266.4992760166388 440 "$s" row 3 11.582400000000012 5804.9535513599985 500 "$s" row 4 11.887200000000012 0 0 "$s" row 5 11.887200000000012 2078.4565398527998 250 "$s" row 6 11.887200000000012 4156.9130797055996 450 "$s" row 7 11.887200000000012 5804.9535513599985 510 "$s" row 8 12.192000000000013 0 0 "$s" row 9 12.192000000000013 2026.6367105894392 250 "$s" row 10 12.192000000000013 4052.9902527129589 460 "$s" row 11 12.192000000000013 5804.9535513599985 520 "$s" row 12 12.496800000000013 0 0 "$s" row 13 12.496800000000013 1977.0822290534393 250 "$s" row 14 12.496800000000013 3954.1644581068786 470 "$s" row 15 12.496800000000013 5804.9535513599985 520 "$s" row 16 12.801600000000013 0 0 "$s" row 17 12.801600000000013 1977.0822290534393 250 "$s" row 18 12.801600000000013 3954.1644581068786 480 "$s" row 19 12.801600000000013 5804.9535513599985 530 "$s" row 20 13.106400000000013 0 0 "$s" row 21 13.106400000000013 1977.0822290534393 250 "$s" row 22 13.106400000000013 3954.1644581068786 490 "$s" row 23 13.106400000000013 5804.9535513599985 540 "$s" row 24 13.411200000000013 0 0 "$s" row 25 13.411200000000013 1977.0822290534393 250 "$s" row 26 13.411200000000013 3954.1644581068786 500 "$s" row 27 13.411200000000013 5804.9535513599985 550 "$s" row 28 13.716000000000015 0 0 "$s" row 29 13.716000000000015 2198.5199694028793 265.29000000000002 "$s" row 30 13.716000000000015 3899.2297757183987 470 "$s" row 31 13.716000000000015 4422.2419322726382 520 "$s" row 32 13.716000000000015 5866.4011084646381 560 "$s" row 33 14.020800000000015 0 0 "$s" row 34 14.020800000000015 2150.6644986623996 265.29000000000002 "$s" row 35 14.020800000000015 3814.2792359423988 470 "$s" row 36 14.020800000000015 4409.2161828403187 530 "$s" row 37 14.020800000000015 5861.3040760780787 580 "$s" row 38 14.325600000000016 0 0 "$s" row 39 14.325600000000016 2144.7179608780793 270.29000000000002 "$s" row 40 14.325600000000016 3812.5802251468785 480 "$s" row 41 14.325600000000016 4396.756770339839 540 "$s" row 42 14.325600000000016 5813.1654368716781 600 "$s" row 43 14.630400000000016 0 0 "$s" row 44 14.630400000000016 2099.9773432627194 270.29000000000002 "$s" row 45 14.630400000000016 3733.293054689279 480 "$s" row 46 14.630400000000016 4384.8636947711984 550 "$s" row 47 14.630400000000016 5872.0644777830385 620 "$s" row 48 14.935200000000016 0 0 "$s" row 49 14.935200000000016 2057.2189049087997 270.29000000000002 "$s" row 50 14.935200000000016 3657.1207373567991 480 "$s" row 51 14.935200000000016 4373.5369561343987 560 "$s" row 52 14.935200000000016 5937.7595618764781 640 "$s" row 53 15.240000000000016 0 0 "$s" row 54 15.240000000000016 2015.8763088844794 270.29000000000002 "$s" row 55 15.240000000000016 3583.7801046835193 480 "$s" row 56 15.240000000000016 4439.2320402278392 580 "$s" row 57 15.240000000000016 6000.9061297766384 660 "$s" row 58 15.544800000000016 0 0 "$s" row 59 15.544800000000016 2013.0446242252797 275.30000000000001 "$s" row 60 15.544800000000016 3586.894957808639 490 "$s" row 61 15.544800000000016 4427.0557961932791 590 "$s" row 62 15.544800000000016 6061.5041814835186 680 "$s" row 63 15.849600000000017 0 0 "$s" row 64 15.849600000000017 1974.2505443942393 275.30000000000001 "$s" row 65 15.849600000000017 3517.8018521241593 490 "$s" row 66 15.849600000000017 4415.4458890905589 600 "$s" row 67 15.849600000000017 5804.9535513599985 664 "$s" row 68 16.459200000000017 0 0 "$s" row 69 16.459200000000017 1901.1930801868796 275.30000000000001 "$s" row 70 16.459200000000017 3387.544357800959 490 "$s" row 71 16.459200000000017 4322.8498007347189 610 "$s" row 72 16.459200000000017 5804.9535513599985 690 "$s" row 73 16.764000000000017 0 0 "$s" row 74 16.764000000000017 1934.6069591654393 285.31 "$s" row 75 16.764000000000017 3461.7344958719991 510 "$s" row 76 16.764000000000017 4383.447852441599 630 "$s" row 77 16.764000000000017 5804.9535513599985 703 "$s" row 78 17.068800000000017 0 0 "$s" row 79 17.068800000000017 1929.7930952447996 290.31999999999999 "$s" row 80 17.068800000000017 3460.3186535423993 520 "$s" row 81 17.068800000000017 4400.4379603967991 640 "$s" row 82 17.068800000000017 5804.9535513599985 716 "$s" row 83 17.373600000000017 0 0 "$s" row 84 17.373600000000017 1899.4940693913595 290.31999999999999 "$s" row 85 17.373600000000017 3405.9503080857589 520 "$s" row 86 17.373600000000017 4347.4854572697586 650 "$s" row 87 17.373600000000017 5804.9535513599985 729 "$s" row 88 17.678400000000018 0 0 "$s" row 89 17.678400000000018 1959.8089526323192 305.32999999999998 "$s" row 90 17.678400000000018 3533.942454681599 550 "$s" row 91 17.678400000000018 4411.7646990335988 670 "$s" row 92 17.678400000000018 5804.9535513599985 742 "$s" row 93 17.983200000000018 0 0 "$s" row 94 17.983200000000018 1910.2544710963193 305.32999999999998 "$s" row 95 17.983200000000018 3444.744387916799 550 "$s" row 96 17.983200000000018 4389.1112217599984 680 "$s" row 97 17.983200000000018 5804.9535513599985 755 "$s" row 98 18.288000000000018 0 0 "$s" row 99 18.288000000000018 1877.9732659814392 305.32999999999998 "$s" row 100 18.288000000000018 3386.6948524031991 550 "$s" row 101 18.288000000000018 4360.7943751679986 690 "$s" row 102 18.288000000000018 5804.9535513599985 768 "$s" row 103 18.592800000000018 0 0 "$s" row 104 18.592800000000018 1905.1574387097596 315.33999999999997 "$s" row 105 18.592800000000018 3447.5760725759992 570 "$s" row 106 18.592800000000018 4418.8439106815995 710 "$s" row 107 18.592800000000018 5804.9535513599985 781 "$s" row 108 18.897600000000018 0 0 "$s" row 109 18.897600000000018 1898.0782270617594 320.33999999999997 "$s" row 110 18.897600000000018 3440.496860927999 580 "$s" row 111 18.897600000000018 4389.1112217599984 720 "$s" row 112 18.897600000000018 5804.9535513599985 825 "$s" row 113 19.202400000000019 0 0 "$s" row 114 19.202400000000019 1929.7930952447996 330.36000000000001 "$s" row 115 19.202400000000019 3508.4572927487993 600 "$s" row 116 19.202400000000019 4444.3290726143987 740 "$s" row 117 19.202400000000019 5804.9535513599985 838.30999999999995 "$s" row 118 19.507200000000022 0 0 "$s" row 119 19.507200000000022 1954.9950887116797 340.37 "$s" row 120 19.507200000000022 3565.0909859327994 620 "$s" row 121 19.507200000000022 4488.2201848319992 760 "$s" row 122 19.507200000000022 5804.9535513599985 851.61000000000001 "$s" row 123 19.812000000000022 0 0 "$s" row 124 19.812000000000022 1953.8624148479994 345.37 "$s" row 125 19.812000000000022 3567.9226705919991 630 "$s" row 126 19.812000000000022 4474.0617615359988 770 "$s" row 127 19.812000000000022 5804.9535513599985 864.91999999999996 "$s" row 128 20.116800000000023 0 0 "$s" row 129 20.116800000000023 1922.7138835967996 345.37 "$s" row 130 20.116800000000023 3511.288977407999 630 "$s" row 131 20.116800000000023 4389.1112217599984 770 "$s" row 132 20.116800000000023 5804.9535513599985 878.23000000000002 "$s" row 133 20.421600000000023 0 0 "$s" row 134 20.421600000000023 1920.1653674035197 350.38 "$s" row 135 20.421600000000023 3511.288977407999 640 "$s" row 136 20.421600000000023 4428.7548069887989 790 "$s" row 137 20.421600000000023 5804.9535513599985 891.52999999999997 "$s" row 138 20.726400000000023 0 0 "$s" row 139 20.726400000000023 1970.0030174054393 365.38999999999999 "$s" row 140 20.726400000000023 3616.0613097983992 670 "$s" row 141 20.726400000000023 4465.5667075583988 810 "$s" row 142 20.726400000000023 5804.9535513599985 904.84000000000003 "$s" row 143 21.031200000000023 0 0 "$s" row 144 21.031200000000023 1913.6524926873594 360.38999999999999 "$s" row 145 21.031200000000023 3508.4572927487993 660 "$s" row 146 21.031200000000023 4399.0221180671988 810 "$s" row 147 21.031200000000023 5804.9535513599985 918.14999999999998 "$s" row 148 21.336000000000023 0 0 "$s" row 149 21.336000000000023 1884.4861406975995 360.38999999999999 "$s" row 150 21.336000000000023 3454.6552842239989 660 "$s" row 151 21.336000000000023 4389.1112217599984 820 "$s" row 152 21.336000000000023 5804.9535513599985 931.45000000000005 "$s" row 153 21.640800000000024 0 0 "$s" row 154 21.640800000000024 1909.6881341644794 370.39999999999998 "$s" row 155 21.640800000000024 3509.8731350783992 680 "$s" row 156 21.640800000000024 4431.5864916479986 840 "$s" row 157 21.640800000000024 5804.9535513599985 944.75999999999999 "$s" row 158 21.945600000000024 0 0 "$s" row 159 21.945600000000024 1878.2564344473594 370.38999999999999 "$s" row 160 21.945600000000024 3451.8235995647992 680 "$s" row 161 21.945600000000024 4346.6359518719992 840 "$s" row 162 21.945600000000024 5804.9535513599985 958.05999999999995 "$s" row 163 22.250400000000024 0 0 "$s" row 164 22.250400000000024 1903.7415963801595 380.41000000000003 "$s" row 165 22.250400000000024 3507.041450419199 700 "$s" row 166 22.250400000000024 4400.4379603967991 860 "$s" row 167 22.250400000000024 5804.9535513599985 971.37 "$s" row 168 22.555200000000024 0 0 "$s" row 169 22.555200000000024 1875.4247497881597 380.41000000000003 "$s" row 170 22.555200000000024 3454.6552842239989 700 "$s" row 171 22.555200000000024 4332.4775285759988 860 "$s" row 172 22.555200000000024 5804.9535513599985 984.67999999999995 "$s" row 173 23.774400000000025 0 0 "$s" row 174 23.774400000000025 1839.7455230822395 392.92000000000002 "$s" row 175 23.774400000000025 3398.0215910399993 725 "$s" row 176 23.774400000000025 4247.5269887999984 875 "$s" row 177 23.774400000000025 5804.9535513599985 1037.9000000000001 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1019.95 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 29 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 235.00080000000025 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 38 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 214.28964000000022 215.47836000000024 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 73 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 215.43175608000024 NaN @ 72 "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 55 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16). This matches the data in the model prior to 4/28/16

CADSWES reformatted the data to fit what is required for RiverWare and added rows for downstream stage of 710 ft. These additional rows are only to prevent table interpolation errors at intermediate points in the solution. The final solution will not end up in this range.} "$s" resize 45 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 18 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 0 214.27440000000021 214.27440000000021 "$s" row 1 0 215.49360000000021 215.49360000000021 "$s" row 2 707.92116479999981 214.27440000000021 214.42680000000021 "$s" row 3 707.92116479999981 215.49360000000021 215.55456000000024 "$s" row 4 1415.8423295999996 214.27440000000021 214.73160000000021 "$s" row 5 1415.8423295999996 215.49360000000021 215.64600000000021 "$s" row 6 2123.7634943999997 214.27440000000021 215.37168000000023 "$s" row 7 2123.7634943999997 215.49360000000021 216.07272000000023 "$s" row 8 2831.6846591999993 214.27440000000021 216.16416000000024 "$s" row 9 2831.6846591999993 215.49360000000021 216.68232000000023 "$s" row 10 3539.6058239999993 214.27440000000021 216.77376000000024 "$s" row 11 3539.6058239999993 215.49360000000021 217.23096000000024 "$s" row 12 4247.5269887999993 214.27440000000021 217.32240000000021 "$s" row 13 4247.5269887999993 215.49360000000021 217.77960000000024 "$s" row 14 4955.4481535999994 214.27440000000021 217.84056000000024 "$s" row 15 4955.4481535999994 215.49360000000021 218.29776000000024 "$s" row 16 5663.3693183999985 214.27440000000021 218.35872000000023 "$s" row 17 5663.3693183999985 215.49360000000021 218.78544000000022 "$s" row 18 6371.2904831999986 214.27440000000021 218.84640000000024 "$s" row 19 6371.2904831999986 215.49360000000021 219.27312000000023 "$s" row 20 7079.2116479999986 214.27440000000021 219.33408000000023 "$s" row 21 7079.2116479999986 215.49360000000021 219.73032000000023 "$s" row 22 7787.1328127999977 214.27440000000021 219.79128000000023 "$s" row 23 7787.1328127999977 215.49360000000021 220.24848000000023 "$s" row 24 8495.0539775999987 214.27440000000021 220.27896000000024 "$s" row 25 8495.0539775999987 215.49360000000021 220.67520000000025 "$s" row 26 8495.0539775999987 216.40800000000021 220.98000000000025 "$s" row 27 9910.8963071999988 214.27440000000021 221.25432000000023 "$s" row 28 9910.8963071999988 215.49360000000021 221.62008000000023 "$s" row 29 9910.8963071999988 216.40800000000021 221.86392000000023 "$s" row 30 11326.738636799997 214.27440000000021 222.13824000000022 "$s" row 31 11326.738636799997 215.49360000000021 222.50400000000025 "$s" row 32 11326.738636799997 216.40800000000021 222.68688000000023 "$s" row 33 12742.580966399997 214.27440000000021 222.99168000000023 "$s" row 34 12742.580966399997 215.49360000000021 223.32696000000024 "$s" row 35 12742.580966399997 216.40800000000021 223.50984000000022 "$s" row 36 14158.423295999997 214.27440000000021 223.84512000000024 "$s" row 37 14158.423295999997 215.49360000000021 224.08896000000024 "$s" row 38 14158.423295999997 216.40800000000021 224.33280000000025 "$s" row 39 15574.265625599995 214.27440000000021 224.60712000000024 "$s" row 40 15574.265625599995 215.49360000000021 224.85096000000024 "$s" row 41 15574.265625599995 216.40800000000021 225.06432000000024 "$s" row 42 16990.107955199997 214.27440000000021 225.36912000000024 "$s" row 43 16990.107955199997 215.49360000000021 225.55200000000025 "$s" row 44 16990.107955199997 216.40800000000021 225.76536000000024 "$o" {TableSlot} {Tail Water Reference Elevation} set s "$o.Tail Water Reference Elevation" "$s" order 57 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 214.27440000000021 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 26 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 135540285.22340372 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 8 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 203881295.46240032 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 169425356.52925465 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 35 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 101940647.73120016 0 0 "$s" row 1 NaN 135540285.22340372 66485690.450288735 "$s" row 2 NaN NaN 135540285.22340372 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 15 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 236.82960000000026 235.00080000000025 235.00080000000025 "$s" row 1 NaN 238.35360000000026 236.82960000000026 "$s" row 2 NaN NaN 238.35360000000026 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 53 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 54 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 51 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 7079.2116479999986 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 44 "$s" sourceSlotName {Wells.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 135540285.22340372 11355.055483391998 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 47 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 66485690.450288735 20592010.841702428 20592010.841702428 "$s" row 1 NaN 120860831.95011088 66485690.450288735 "$s" row 2 NaN NaN 120860831.95011088 "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 28 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 39 "$s" resize 5 4 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 18.535847486193859 3398.0215910399993 368.07693581954237 0 "$s" row 1 NaN NaN 3842.7881751893769 1920.1653674035197 "$s" row 2 NaN NaN NaN 3511.288977407999 "$s" row 3 NaN NaN NaN 4428.7548069887989 "$s" row 4 NaN NaN NaN 5804.9535513599985 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 63 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 21.336000000000023 19.812000000000022 13.411200000000013 "$s" row 1 NaN 22.860000000000024 16.764000000000017 "$s" row 2 NaN NaN 21.945600000000024 "$s" row 3 NaN NaN 23.774400000000025 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 61 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 60 "$s" resize 3 4 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 214.88400000000021 2123.7634943999997 0 1415.8423295999996 "$s" row 1 NaN NaN 4247.5269887999993 2831.6846591999993 "$s" row 2 NaN NaN NaN 8495.0539775999987 "$o" {TableSlot} {Convolved Stage Flow Tailwater Table} set s "$o.Convolved Stage Flow Tailwater Table" "$s" order 7 "$s" sourceSlotName {Wells.Stage Flow Tailwater Table} "$s" resize 57 4 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Downstream Stage} {Outflow} {Tailwater Elevation} {Extrapolated} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 18 3 2 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 214.27440000000021 0 214.27440000000021 NaN "$s" row 1 214.27440000000021 707.92116479999981 214.42680000000021 NaN "$s" row 2 214.27440000000021 1415.8423295999996 214.73160000000021 NaN "$s" row 3 214.27440000000021 2123.7634943999997 215.37168000000023 NaN "$s" row 4 214.27440000000021 2831.6846591999993 216.16416000000024 NaN "$s" row 5 214.27440000000021 3539.6058239999993 216.77376000000024 NaN "$s" row 6 214.27440000000021 4247.5269887999993 217.32240000000021 NaN "$s" row 7 214.27440000000021 4955.4481535999994 217.84056000000024 NaN "$s" row 8 214.27440000000021 5663.3693183999985 218.35872000000023 NaN "$s" row 9 214.27440000000021 6371.2904831999986 218.84640000000024 NaN "$s" row 10 214.27440000000021 7079.2116479999986 219.33408000000023 NaN "$s" row 11 214.27440000000021 7787.1328127999977 219.79128000000023 NaN "$s" row 12 214.27440000000021 8495.0539775999987 220.27896000000024 NaN "$s" row 13 214.27440000000021 9910.8963071999988 221.25432000000023 NaN "$s" row 14 214.27440000000021 11326.738636799997 222.13824000000022 NaN "$s" row 15 214.27440000000021 12742.580966399997 222.99168000000023 NaN "$s" row 16 214.27440000000021 14158.423295999997 223.84512000000024 NaN "$s" row 17 214.27440000000021 15574.265625599995 224.60712000000024 NaN "$s" row 18 214.27440000000021 16990.107955199997 225.36912000000024 NaN "$s" row 19 215.49360000000021 0 215.49360000000021 NaN "$s" row 20 215.49360000000021 707.92116479999981 215.55456000000024 NaN "$s" row 21 215.49360000000021 1415.8423295999996 215.64600000000021 NaN "$s" row 22 215.49360000000021 2123.7634943999997 216.07272000000023 NaN "$s" row 23 215.49360000000021 2831.6846591999993 216.68232000000023 NaN "$s" row 24 215.49360000000021 3539.6058239999993 217.23096000000024 NaN "$s" row 25 215.49360000000021 4247.5269887999993 217.77960000000024 NaN "$s" row 26 215.49360000000021 4955.4481535999994 218.29776000000024 NaN "$s" row 27 215.49360000000021 5663.3693183999985 218.78544000000022 NaN "$s" row 28 215.49360000000021 6371.2904831999986 219.27312000000023 NaN "$s" row 29 215.49360000000021 7079.2116479999986 219.73032000000023 NaN "$s" row 30 215.49360000000021 7787.1328127999977 220.24848000000023 NaN "$s" row 31 215.49360000000021 8495.0539775999987 220.67520000000025 NaN "$s" row 32 215.49360000000021 9910.8963071999988 221.62008000000023 NaN "$s" row 33 215.49360000000021 11326.738636799997 222.50400000000025 NaN "$s" row 34 215.49360000000021 12742.580966399997 223.32696000000024 NaN "$s" row 35 215.49360000000021 14158.423295999997 224.08896000000024 NaN "$s" row 36 215.49360000000021 15574.265625599995 224.85096000000024 NaN "$s" row 37 215.49360000000021 16990.107955199997 225.55200000000025 NaN "$s" row 38 216.40800000000021 0 215.67648000000031 215.67648000000031 "$s" row 39 216.40800000000021 707.92116479999981 216.11844000000031 216.11844000000031 "$s" row 40 216.40800000000021 1415.8423295999996 216.5604000000003 216.5604000000003 "$s" row 41 216.40800000000021 2123.7634943999997 217.00236000000029 217.00236000000029 "$s" row 42 216.40800000000021 2831.6846591999993 217.44432000000029 217.44432000000029 "$s" row 43 216.40800000000021 3539.6058239999993 217.88628000000028 217.88628000000028 "$s" row 44 216.40800000000021 4247.5269887999993 218.32824000000028 218.32824000000028 "$s" row 45 216.40800000000021 4955.4481535999994 218.77020000000027 218.77020000000027 "$s" row 46 216.40800000000021 5663.3693183999985 219.21216000000027 219.21216000000027 "$s" row 47 216.40800000000021 6371.2904831999986 219.65412000000026 219.65412000000026 "$s" row 48 216.40800000000021 7079.2116479999986 220.09608000000026 220.09608000000026 "$s" row 49 216.40800000000021 7787.1328127999977 220.53804000000025 220.53804000000025 "$s" row 50 216.40800000000021 8495.0539775999987 220.98000000000025 NaN "$s" row 51 216.40800000000021 9910.8963071999988 221.86392000000023 NaN "$s" row 52 216.40800000000021 11326.738636799997 222.68688000000023 NaN "$s" row 53 216.40800000000021 12742.580966399997 223.50984000000022 NaN "$s" row 54 216.40800000000021 14158.423295999997 224.33280000000025 NaN "$s" row 55 216.40800000000021 15574.265625599995 225.06432000000024 NaN "$s" row 56 216.40800000000021 16990.107955199997 225.76536000000024 NaN "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Bypass} set s "$o.Bypass" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 7077.7958056703983 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Table} set s "$o.Bypass Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Bypass Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 235.00080000000025 7079.2116479999986 "$s" row 1 238.35360000000026 7079.2116479999986 "$o" {SeriesSlot} {Bypass Drift Index} set s "$o.Bypass Drift Index" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Index Table} set s "$o.Bypass Index Table" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Bypass Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Bypass Capacity Fraction} set s "$o.Bypass Capacity Fraction" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bypass Capacity} set s "$o.Bypass Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Capacity Table} set s "$o.Bypass Capacity Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Bypass Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 7079.2116479999986 "$s" row 1 135540285.22340372 7079.2116479999986 "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {WEL to RRH} set o "$ws.WEL to RRH" $ws SimObj $obj {Reach} 197 1311 {} 732 1644 434 835 "$o" geospatialCoords 0 0 434 835 "$o" objAttributes { \ } "$o" objOrd wsList 5027 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 169 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 5459.4880229375985 5714.3396422655987 5703.012903628799 5363.2107445247984 5366.0424291839981 5391.5275911167992 5411.349383731198 5332.0622132735989 5320.7354746367992 5300.9136820223985 5088.5373325823984 5153.666079743999 5264.1017814527986 5391.5275911167992 5484.9731848703987 5479.3098155519983 5340.557267251198 5077.2105939455987 4745.9034888191982 4777.0520200703986 5012.081846783999 5065.883855308799 5150.8343950847984 5232.9532502015991 5315.0721053183979 5292.4186280447984 @ 2 5300.9136820223985 5272.5968354303986 5332.0622132735989 5317.9037899775985 5128.1809178111989 5082.873963263999 4963.9432075775994 4740.2401195007988 4508.0419774463981 5402.8543297535989 5484.9731848703987 5470.8147615743983 5479.3098155519983 5402.8543297535989 5564.2603553279987 5963.5278922751986 5952.201153638398 6065.4685400063981 6082.4586479615991 5989.0130542079987 5643.5475257855987 5748.3198581759989 5802.1218667007988 5804.9535513599985 5850.2605059071984 5909.7258837503978 5867.2506138623985 5354.7156905471984 5295.250312703999 5334.8938979327986 5363.2107445247984 5357.5473752063981 @ 2 5380.2008524799985 5397.1909604351986 5388.6959064575985 5349.052321228799 5346.2206365695993 5326.3988439551986 5346.2206365695993 5340.557267251198 @ 2 5343.3889519103986 5374.5374831615991 @ 2 5346.2206365695993 5374.5374831615991 5380.2008524799985 5402.8543297535989 5380.2008524799985 5374.5374831615991 5380.2008524799985 5428.3394916863981 5479.3098155519983 5405.6860144127986 5484.9731848703987 5442.4979149823985 5343.3889519103986 5317.9037899775985 @ 2 5207.468088268799 5298.0819973631988 5323.5671592959989 5320.7354746367992 5315.0721053183979 5320.7354746367992 5283.9235740671984 5286.7552587263981 5306.5770513407988 5309.0887556335092 NaN @ 72 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 1.75 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {Rocky Reach} set o "$ws.Rocky Reach" $ws SimObj $obj {LevelPowerReservoir} 178 1221 {} 738 1549 430 730 "$o" geospatialCoords 0 0 430 730 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5028 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated and Bypass} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {EIS Table Lookup} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated and Bypass} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {Plant Efficiency Curve Release} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Base Value Plus Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Base Value Plus Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 5456.6563382783979 5584.0821479423985 5666.2010030591982 6048.4784320511981 5802.1218667007988 5397.1909604351986 5765.3099661311981 5470.8147615743983 5663.3693183999985 5561.428670668799 5538.7751933951986 5569.9237246463981 4915.8045683711989 5380.2008524799985 5708.6762729471984 5434.0028610047984 5569.9237246463981 5623.725733171198 5343.3889519103986 5000.7551081471984 4706.2599035903986 4825.1906592767991 5255.6067274751986 5170.6561876991982 5091.3690172415991 5581.2504632831988 5544.4385627135989 5533.1118240767983 5516.1217161215991 5547.2702473727986 5513.2900314623985 5657.7059490815991 5385.8642217983979 5196.1413496319983 5023.4085854207988 5006.4184774655987 4655.2895797247993 4808.2005513215991 5762.4782814719983 5632.220787148799 5527.4484547583979 5643.5475257855987 5603.9039405567983 5838.9337672703978 6020.1615854591982 6006.0031621631979 6164.577503078398 5391.5275911167992 5844.597136588799 5734.1614348799985 5620.8940485119983 5943.7060996607988 5887.0724064767983 @ 2 6039.9833780735989 5790.7951280639982 5564.2603553279987 5601.0722558975986 5677.5277416959989 5629.3891024895993 5524.6167700991982 5470.8147615743983 5626.5574178303978 5578.4187786239982 5623.725733171198 5674.6960570367983 5649.2108951039982 5632.220787148799 5674.6960570367983 5646.3792104447984 5473.6464462335989 5603.9039405567983 5394.3592757759989 5626.5574178303978 5524.6167700991982 5501.9632928255987 5530.2801394175985 5510.4583468031988 5569.9237246463981 5603.9039405567983 5615.2306791935989 5632.220787148799 @ 2 6054.1418013695984 5722.8346962431988 5635.0524718079987 5541.6068780543983 5513.2900314623985 5235.7849348607988 5484.9731848703987 5388.6959064575985 5490.636554188799 @ 2 5470.8147615743983 5465.1513922559989 5516.1217161215991 5338.3570482710002 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 5097.0323865600076 278190930.62605858 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 214.28964000000022 215.47836000000024 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 215.43175608000024 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 17 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5804.9535513599985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 33 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 13 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 18 "$s" resize 10 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 207.26400000000021 0 "$s" row 1 214.27440000000021 234402325.3931216 "$s" row 2 214.42680000000021 239947896.6296989 "$s" row 3 214.57920000000021 245197839.9878557 "$s" row 4 214.73160000000021 250753605.28920612 "$s" row 5 214.88400000000021 256299176.52578336 "$s" row 6 215.03640000000021 261732613.04985633 "$s" row 7 215.18880000000021 267155855.50915617 "$s" row 8 215.34120000000021 272670844.55141413 "$s" row 9 215.49360000000021 278196027.65844518 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1461 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 19.522440000000021 30.159960000000034 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 185.63844000000017 192.2282160000002 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 39.020614603775989 38.34101028556799 38.256059745791987 @ 95 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 2067.1298012159996 2186.0605569023996 2115.2684404223996 2245.5259347455994 2503.2092387327993 2273.8427813375993 2316.3180512255994 2288.0012046335992 2372.9517444095991 2299.3279432703994 2302.1596279295995 3262.1007273983992 2647.6251563519995 2355.9616364543995 2375.7834290687997 2361.6250057727993 1996.3376847359996 2163.4070796287997 2084.1199091711992 2180.3971875839993 2171.9021336063997 2143.5852870143995 2135.0902330367994 2259.6843580415994 2273.6757119427066 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 54 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 207.26400000000021 11355.055483391998 "$s" row 1 215.49360000000021 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 52 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bypass} set s "$o.Bypass" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 28.033678126079995 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Table} set s "$o.Bypass Table" "$s" order 11 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Bypass Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 207.26400000000021 28.316846591999994 "$s" row 1 215.49360000000021 28.316846591999994 "$o" {SeriesSlot} {Bypass Drift Index} set s "$o.Bypass Drift Index" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Index Table} set s "$o.Bypass Index Table" "$s" order 10 "$s" resize 2 3 "$s" setRowLabels {} {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Bypass Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 1 214.27440000000021 28.316846591999994 "$s" row 1 1 215.49360000000021 28.316846591999994 "$o" {SeriesSlot} {Bypass Capacity Fraction} set s "$o.Bypass Capacity Fraction" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 3283 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 22 "$s" resize 4 2 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 207.26400000000021 0 "$s" row 1 214.27440000000021 0 "$s" row 2 214.88400000000021 1641.5 "$s" row 3 215.49360000000021 3283 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 39 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16)

CADSWES added rows for 0 flow and 0 power (required by RiverWare). CADSWES removed the low flow rows at each operating head to make the curves concave (required by RiverWare). Power was also reduced at the high flow points to make the curves concave by extrapolating the segment from the previous two points} "$s" resize 69 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 19.507200000000022 0 0 "$s" row 1 19.507200000000022 1699.0107955199996 260.33999999999997 "$s" row 2 19.507200000000022 3964.3585228799989 592.26999999999998 "$s" row 3 19.507200000000022 5097.0323865599985 741.97000000000003 "$s" row 4 19.507200000000022 5804.9535513599985 822.77999999999997 "$s" row 5 20.421600000000023 0 0 "$s" row 6 20.421600000000023 1699.0107955199996 277.38999999999999 "$s" row 7 20.421600000000023 3964.3585228799989 635.73000000000002 "$s" row 8 20.421600000000023 5097.0323865599985 786.97000000000003 "$s" row 9 20.421600000000023 5804.9535513599985 872.99000000000001 "$s" row 10 21.336000000000023 0 0 "$s" row 11 21.336000000000023 1699.0107955199996 305.12 "$s" row 12 21.336000000000023 3964.3585228799989 701.16999999999996 "$s" row 13 21.336000000000023 5097.0323865599985 854.24000000000001 "$s" row 14 21.336000000000023 5804.9535513599985 936.39999999999998 "$s" row 15 21.793200000000024 0 0 "$s" row 16 21.793200000000024 1699.0107955199996 322.98000000000002 "$s" row 17 21.793200000000024 3964.3585228799989 731.35000000000002 "$s" row 18 21.793200000000024 5097.0323865599985 894.36000000000001 "$s" row 19 21.793200000000024 5804.9535513599985 975.10000000000002 "$s" row 20 22.250400000000024 0 0 "$s" row 21 22.250400000000024 1699.0107955199996 341.31 "$s" row 22 22.250400000000024 4247.5269887999984 835.16999999999996 "$s" row 23 22.250400000000024 5097.0323865599985 935.38999999999999 "$s" row 24 22.250400000000024 5804.9535513599985 1014.58 "$s" row 25 23.164800000000024 0 0 "$s" row 26 23.164800000000024 1699.0107955199996 355.52999999999997 "$s" row 27 23.164800000000024 4247.5269887999984 879.14999999999998 "$s" row 28 23.164800000000024 5097.0323865599985 997.01999999999998 "$s" row 29 23.164800000000024 5804.9535513599985 1095.1400000000001 "$s" row 30 23.774400000000025 0 0 "$s" row 31 23.774400000000025 1699.0107955199996 369 "$s" row 32 23.774400000000025 4247.5269887999984 907.25 "$s" row 33 23.774400000000025 5097.0323865599985 1029.2 "$s" row 34 23.774400000000025 5804.9535513599985 1130.73 "$s" row 35 24.384000000000025 0 0 "$s" row 36 24.384000000000025 1699.0107955199996 374.55000000000001 "$s" row 37 24.384000000000025 4247.5269887999984 935.59000000000003 "$s" row 38 24.384000000000025 5097.0323865599985 1061.6900000000001 "$s" row 39 24.384000000000025 5804.9535513599985 1166.6800000000001 "$s" row 40 25.298400000000026 0 0 "$s" row 41 25.298400000000026 1699.0107955199996 388.72000000000003 "$s" row 42 25.298400000000026 4247.5269887999984 970.67999999999995 "$s" row 43 25.298400000000026 5097.0323865599985 1104.04 "$s" row 44 25.298400000000026 5804.9535513599985 1215.0799999999999 "$s" row 45 26.212800000000026 0 0 "$s" row 46 26.212800000000026 1699.0107955199996 404.49000000000001 "$s" row 47 26.212800000000026 4247.5269887999984 1005.76 "$s" row 48 26.212800000000026 5097.0323865599985 1147.8800000000001 "$s" row 49 26.212800000000026 5804.9535513599985 1266.21 "$s" row 50 27.127200000000027 0 0 "$s" row 51 27.127200000000027 1699.0107955199996 420.86000000000001 "$s" row 52 27.127200000000027 4247.5269887999984 1046.5 "$s" row 53 27.127200000000027 5097.0323865599985 1194.71 "$s" row 54 27.127200000000027 5804.9535513599985 1314.26 "$s" row 55 28.041600000000031 0 0 "$s" row 56 28.041600000000031 1699.0107955199996 435.05000000000001 "$s" row 57 28.041600000000031 4247.5269887999984 1081.78 "$s" row 58 28.041600000000031 5097.0323865599985 1234.98 "$s" row 59 28.041600000000031 5804.9535513599985 1358.5599999999999 "$s" row 60 28.956000000000031 0 0 "$s" row 61 28.956000000000031 1699.0107955199996 439.57999999999998 "$s" row 62 28.956000000000031 3964.3585228799989 1025.6800000000001 "$s" row 63 28.956000000000031 5097.0323865599985 1251.26 "$s" row 64 28.956000000000031 5804.9535513599985 1392.1500000000001 "$s" row 65 30.175200000000032 0 0 "$s" row 66 30.175200000000032 3964.3585228799989 1068.8599999999999 "$s" row 67 30.175200000000032 5097.0323865599985 1303.95 "$s" row 68 30.175200000000032 5804.9535513599985 1450.77 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1539.95 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 35 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 207.26400000000021 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 44 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 184.72404000000017 186.8424000000002 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 73 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 186.77763000000022 NaN @ 72 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 64 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16). This matches the data in the model prior to 4/28/16} "$s" resize 22 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 18 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 566.33693183999992 0.0091440000000000098 "$s" row 2 1132.6738636799998 0.18288000000000018 "$s" row 3 1699.0107955199996 0.48768000000000056 "$s" row 4 2265.3477273599997 0.83820000000000083 "$s" row 5 2831.6846591999993 1.1887200000000013 "$s" row 6 3398.0215910399993 1.5392400000000015 "$s" row 7 3964.3585228799993 1.9354800000000019 "$s" row 8 4530.6954547199994 2.3048976000000025 "$s" row 9 5097.0323865599985 2.7127200000000031 "$s" row 10 5663.3693183999985 3.0937200000000034 "$s" row 11 6229.7062502399986 3.4594800000000037 "$s" row 12 6796.0431820799986 3.8100000000000041 "$s" row 13 7079.2116479999986 3.9624000000000041 "$s" row 14 7362.3801139199977 4.1605200000000044 "$s" row 15 7928.7170457599987 4.4958000000000045 "$s" row 16 8495.0539775999987 4.8006000000000046 "$s" row 17 9910.8963071999988 5.7607200000000054 "$s" row 18 12459.412500479997 7.1932800000000077 "$s" row 19 14158.423295999997 7.6657200000000074 "$s" row 20 15574.265625599995 8.0924400000000087 "$s" row 21 18405.950284799997 8.4886800000000093 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 32 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 43793702.265323587 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 14 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 713584534.11840093 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 356792267.05920047 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 41 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 256299176.52578336 234402325.3931216 0 "$s" row 1 NaN 278196027.65844518 234402325.3931216 "$s" row 2 NaN NaN 278196027.65844518 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 21 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 214.88400000000021 214.30488000000022 214.30488000000022 "$s" row 1 NaN 215.46312000000023 214.88400000000021 "$s" row 2 NaN NaN 215.46312000000023 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 59 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 60 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 57 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 7079.2116479999986 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 50 "$s" sourceSlotName {Rocky Reach.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 278196027.65844518 11355.055483391998 "$o" {SeriesSlot} {Bypass Capacity} set s "$o.Bypass Capacity" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Capacity Table} set s "$o.Bypass Capacity Table" "$s" order 8 "$s" sourceSlotName {Rocky Reach.Bypass Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Bypass Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 28.316846591999994 "$s" row 1 278196027.65844518 28.316846591999994 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 53 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 21896851.132661793 10795514.594734095 10795514.594734095 "$s" row 1 NaN 32753530.116034605 21896851.132661793 "$s" row 2 NaN NaN 32753530.116034605 "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 34 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 45 "$s" resize 5 4 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 25.048999212227471 2831.6846591999993 2430.0573760770508 0 "$s" row 1 NaN NaN 3711.8761874790653 1699.0107955199996 "$s" row 2 NaN NaN NaN 4247.5269887999984 "$s" row 3 NaN NaN NaN 5097.0323865599985 "$s" row 4 NaN NaN NaN 5804.9535513599985 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 67 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 27.127200000000027 25.908000000000026 19.507200000000022 "$s" row 1 NaN 28.651200000000031 21.336000000000023 "$s" row 2 NaN NaN 25.298400000000026 "$s" row 3 NaN NaN 30.175200000000032 "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 65 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 2123.7634943999997 0 0 "$s" row 1 NaN 5097.0323865599985 1132.6738636799998 "$s" row 2 NaN NaN 2831.6846591999993 "$s" row 3 NaN NaN 8495.0539775999987 "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 500 "$s" resize 1 4 "$s" setRowLabels {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tail Water Reference Elevation} set s "$o.Tail Water Reference Elevation" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {Rocky Reach Constraints} set o "$ws.Rocky Reach Constraints" $ws SimObj $obj {DataObj} 95 1201 {} 1523 2532 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5029 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Minimum Generation Manual} set s "$o.Minimum Generation Manual" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 10 "$s" units 3 {%f} 2 "$s" value 214.27440000000021 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 9 "$s" units 3 {%f} 2 "$s" value 215.49360000000021 {m} "$o" {SeriesSlot} {Fish Ladder} set s "$o.Fish Ladder" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Fish Bypass} set s "$o.Fish Bypass" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Summer Fish Spill Percent Default} set s "$o.Summer Fish Spill Percent Default" "$s" order 42 "$s" units 0 {%f} 2 "$s" value 0.089999999999999997 {NONE} "$o" {ScalarSlot} {Recreation Weekend Min Elevation} set s "$o.Recreation Weekend Min Elevation" "$s" order 23 "$s" units 3 {%f} 2 "$s" value NaN {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 550 @ 11 570 @ 17 650 @ 7 640 @ 24 775 @ 62 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 745 @ 28 850 @ 23 975 @ 70 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 214.27440000000021 @ 121 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 184.4040000000002 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 196.5960000000002 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 215.49360000000021 @ 121 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Summer Fish Spill Percent Manual} set s "$o.Summer Fish Spill Percent Manual" "$s" order 43 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {TableSlot} {Recreation Weekend} set s "$o.Recreation Weekend" "$s" order 22 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Summer Fish Spill Season Default} set s "$o.Summer Fish Spill Season Default" "$s" order 44 "$s" userDescript {Sets the default active season for Summer Fish Spill from June 7 through August 20 (based on average dates from Data for ORNL Model 2-14-11.xlsx provided by Grant County PUD). These values are accessed by the ActiveSeason function and can be overridden if values are entered in the Summer Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 139798800.5 "$s" row 1 146275200.5 "$o" {TableSlot} {Summer Fish Spill Season Operations} set s "$o.Summer Fish Spill Season Operations" "$s" order 45 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {ScalarSlot} {CJAD Draft Max} set s "$o.CJAD Draft Max" "$s" order 0 "$s" units 10 {%f} 2 "$s" value 10983085.386559503 {m3} "$o" {SeriesSlot} {CJAD Required Draft Volume} set s "$o.CJAD Required Draft Volume" "$s" order 3 "$s" computedByExpr 2 {IF ( $ "Wanapum Constraints.CJAD Required Draft Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraft"( % "Rocky Reach", @"t" ), $ "Rocky Reach Constraints.CJAD Draft Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" userDescript {This slot calculates the volume that Rocky Reach is required to draft to make up its portion of the outlfow shortage from CJAD in accordance with the Hanford Reach Agreement D.6(a)(i) based on the actual CJAD quantity and the amount that downstream reservoirs are already drafting.} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {CJAD II Draft Max} set s "$o.CJAD II Draft Max" "$s" order 1 "$s" units 10 {%f} 2 "$s" value 10983085.386559503 {m3} "$o" {SeriesSlot} {CJAD II Required Draft Volume} set s "$o.CJAD II Required Draft Volume" "$s" order 2 "$s" computedByExpr 2 {IF ( $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [@"t"] - $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] ) * ( $ "Rocky Reach Constraints.CJAD II Draft Max" [] / ( $ "Rocky Reach Constraints.CJAD II Draft Max" [] + $ "Wells Constraints.CJAD II Draft Max" [] ) ), $ "Rocky Reach Constraints.CJAD II Draft Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {TableSlot} {Spring Fish Spill Season Default} set s "$o.Spring Fish Spill Season Default" "$s" order 40 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 137034000.5 "$s" row 1 139795200.5 "$o" {TableSlot} {Spring Fish Spill Season Operations} set s "$o.Spring Fish Spill Season Operations" "$s" order 41 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {ScalarSlot} {Spring Fish Spill Percent Default} set s "$o.Spring Fish Spill Percent Default" "$s" order 38 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Spring Fish Spill Percent Manual} set s "$o.Spring Fish Spill Percent Manual" "$s" order 39 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {Minimum Generation Default Normal} set s "$o.Minimum Generation Default Normal" "$s" order 13 "$s" units 29 {%f} 2 "$s" value 35 {MW} "$o" {ScalarSlot} {Minimum Generation Default Fish Bypass} set s "$o.Minimum Generation Default Fish Bypass" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 170 {MW} "$o" {SeriesSlot} {Minimum Generation Default} set s "$o.Minimum Generation Default" "$s" order 11 "$s" computedByExpr 2 {IF ( @"t" >= @"April 1" AND @"t" <= @"August 31" )\ THEN\ $ "Rocky Reach Constraints.Minimum Generation Default Fish Bypass" []\ ELSE\ $ "Rocky Reach Constraints.Minimum Generation Default Normal" []\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 37 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Rocky Reach", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Desired Operating Elevation} set s "$o.Desired Operating Elevation" "$s" order 4 "$s" computedByExpr 3 {IF ( "ResNameFromDataObj"( ThisObject ) & "Turbine Release" [@"t"] >= "TableInterpolation"( "ResNameFromDataObj"( ThisObject ) & "Auto Max Turbine Q", 0.00000000, 1.00000000, "ResNameFromDataObj"( ThisObject ) & "Operating Head" [@"t"], @"t" ) )\ THEN\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"] - 1.00000000 "ft"\ ELSE\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 48 "$s" units 15 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 55 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 54 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Allowable Curvature Scalar} set s "$o.Turbine Release Allowable Curvature Scalar" "$s" order 47 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 4077.6259092479991 {cms} "$o" {SeriesSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 46 "$s" computedByExpr 2 {IF ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) < 24.00000000 "hr" AND @"t" != @"24:00:00" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) ) / 1.00000000 "hr" )\ ELSE\ IF ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) < 24.00000000 "hr" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) ) / 1.00000000 "hr" )\ ELSE\ ThisObject & "Turbine Release Curvature Parameter" [] * 24.00000000\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Percent Full} set s "$o.Percent Full" "$s" order 48 "$s" computedByExpr 3 {1.00000000 - "RelativeDraft"( "ResNameFromDataObj"( ThisObject ), @"t" )} "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pond Limits Adjustment} set s "$o.Pond Limits Adjustment" "$s" order 57 "$s" units 2 {%f} 2 "$s" value 0 {m} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 55 "$s" units 2 {%f} 2 "$s" value 0.15240000000000017 {m} "$o" {ScalarSlot} {Pool Elevation Max Margin Default} set s "$o.Pool Elevation Max Margin Default" "$s" order 51 "$s" units 2 {%f} 2 "$s" value 0.10363200000000011 {m} "$o" {SeriesSlot} {Pool Elevation Max with Margin} set s "$o.Pool Elevation Max with Margin" "$s" order 34 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Max Pool Elevation", @"t" ) )\ THEN\ "Min"( ThisObject & "License Max Pool Elevation" [], ThisObject & "Special Operations Max Pool Elevation" [] )\ ELSE\ ThisObject & "License Max Pool Elevation" []\ ENDIF - ThisObject & "Pool Elevation Max Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pool Elevation Min Margin Default} set s "$o.Pool Elevation Min Margin Default" "$s" order 52 "$s" units 2 {%f} 2 "$s" value 0.076200000000000087 {m} "$o" {SeriesSlot} {Pool Elevation Min with Margin} set s "$o.Pool Elevation Min with Margin" "$s" order 33 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Min Pool Elevation", @"t" ) )\ THEN\ "Max"( ThisObject & "License Min Pool Elevation" [], ThisObject & "Special Operations Min Pool Elevation" [] )\ ELSE\ ThisObject & "License Min Pool Elevation" []\ ENDIF + ThisObject & "Pool Elevation Min Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Max Controlling} set s "$o.Elevation Max Controlling" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Elevation Min Controlling} set s "$o.Elevation Min Controlling" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Min Margin} set s "$o.Pool Elevation Min Margin" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Max Margin} set s "$o.Pool Elevation Max Margin" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Operating Head} set s "$o.Shifted Operating Head" "$s" order 41 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Turbine Release} set s "$o.Shifted Turbine Release" "$s" order 42 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency} set s "$o.Efficiency" "$s" order 43 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Estimate} set s "$o.Turbine Release Estimate" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head Estimate} set s "$o.Operating Head Estimate" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency Estimate} set s "$o.Efficiency Estimate" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Max Efficiency Turbine Release} set s "$o.Max Efficiency Turbine Release" "$s" order 47 "$s" units 15 {%f} 2 "$s" value NaN {cms} "$o" {ScalarSlot} {Max Efficiency Operating Head} set s "$o.Max Efficiency Operating Head" "$s" order 48 "$s" units 2 {%f} 2 "$s" value NaN {m} "$o" {ScalarSlot} {cos Efficiency Theta} set s "$o.cos Efficiency Theta" "$s" order 49 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {sin Efficiency Theta} set s "$o.sin Efficiency Theta" "$s" order 50 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Pool Elevation Estimate} set s "$o.Pool Elevation Estimate" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Estimate Avg} set s "$o.Pool Elevation Estimate Avg" "$s" order 52 "$s" units 2 {%f} 2 "$s" value 215.11307598541691 {m} "$o" {SeriesSlot} {Inflow Estimate} set s "$o.Inflow Estimate" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Estimate} set s "$o.Outflow Estimate" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Estimate Avg} set s "$o.Outflow Estimate Avg" "$s" order 55 "$s" units 15 {%f} 2 "$s" value 6024.6559087205142 {cms} "$o" {ScalarSlot} {Tailwater Estimate Avg} set s "$o.Tailwater Estimate Avg" "$s" order 56 "$s" units 2 {%f} 2 "$s" value 190.06407677318944 {m} "$o" {SeriesSlot} {Tailwater Estimate} set s "$o.Tailwater Estimate" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Operating Head Estimate Avg} set s "$o.Operating Head Estimate Avg" "$s" order 58 "$s" units 2 {%f} 2 "$s" value 25.048999212227471 {m} "$o" {ScalarSlot} {Max Efficiency} set s "$o.Max Efficiency" "$s" order 59 "$s" units 75 {%f} 2 "$s" value NaN {decimal} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1250 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 215.49360000000021 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 196.5960000000002 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 17 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 67 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 214.27440000000021 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 184.4040000000002 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 70 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {HK Estimate} set s "$o.HK Estimate" "$s" order 73 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK} set s "$o.HK" "$s" order 74 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax 0 0.28251733377190869 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Operating Head Count} set s "$o.HK Operating Head Count" "$s" order 75 "$s" units 0 {%f} 2 "$s" value 4 {NONE} "$o" {TableSlot} {HK Table Operating Head} set s "$o.HK Table Operating Head" "$s" order 76 "$s" resize 4 1 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 2 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 19.507200000000022 "$s" row 1 23.774400000000025 "$s" row 2 28.041600000000031 "$s" row 3 30.175200000000032 "$o" {TableSlot} {HK Table Turbine Release} set s "$o.HK Table Turbine Release" "$s" order 77 "$s" resize 3 1 "$s" setRowLabels {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 15 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 28.316846591999994 "$s" row 1 4105.9427558399993 "$s" row 2 5804.9535513599985 "$o" {ScalarSlot} {HK Turbine Release Count} set s "$o.HK Turbine Release Count" "$s" order 78 "$s" units 0 {%f} 2 "$s" value 3 {NONE} "$o" {TableSlot} {HK Table} set s "$o.HK Table" "$s" order 79 "$s" resize 15 15 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setMaximums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setUnits 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} "$s" row 0 0.15323033890453902 0.14880443696663384 0.14173756822003117 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 1 0.21718520033715488 0.21367741208139018 0.19478708830238442 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 2 0.25606076261972693 0.25471630213743546 0.23403460302997828 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 3 0.26961739051378786 0.26747724342672169 0.2499193123879708 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$o" {ScalarSlot} {HK Count} set s "$o.HK Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 12 {NONE} "$o" {TableSlot} {HK Table 3D} set s "$o.HK Table 3D" "$s" order 81 "$s" resize 225 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {HK} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 2 15 30 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 19.507200000000022 28.316846591999994 0.15323033890453902 "$s" row 1 19.507200000000022 4105.9427558399993 0.14880443696663384 "$s" row 2 19.507200000000022 5804.9535513599985 0.14173756822003117 "$s" row 3 23.774400000000025 28.316846591999994 0.21718520033715488 "$s" row 4 23.774400000000025 4105.9427558399993 0.21367741208139018 "$s" row 5 23.774400000000025 5804.9535513599985 0.19478708830238442 "$s" row 6 28.041600000000031 28.316846591999994 0.25606076261972693 "$s" row 7 28.041600000000031 4105.9427558399993 0.25471630213743546 "$s" row 8 28.041600000000031 5804.9535513599985 0.23403460302997828 "$s" row 9 30.175200000000032 28.316846591999994 0.26961739051378786 "$s" row 10 30.175200000000032 4105.9427558399993 0.26747724342672169 "$s" row 11 30.175200000000032 5804.9535513599985 0.2499193123879708 "$s" row 12 NaN NaN NaN "$s" row 13 NaN NaN NaN "$s" row 14 NaN NaN NaN "$s" row 15 NaN NaN NaN "$s" row 16 NaN NaN NaN "$s" row 17 NaN NaN NaN "$s" row 18 NaN NaN NaN "$s" row 19 NaN NaN NaN "$s" row 20 NaN NaN NaN "$s" row 21 NaN NaN NaN "$s" row 22 NaN NaN NaN "$s" row 23 NaN NaN NaN "$s" row 24 NaN NaN NaN "$s" row 25 NaN NaN NaN "$s" row 26 NaN NaN NaN "$s" row 27 NaN NaN NaN "$s" row 28 NaN NaN NaN "$s" row 29 NaN NaN NaN "$s" row 30 NaN NaN NaN "$s" row 31 NaN NaN NaN "$s" row 32 NaN NaN NaN "$s" row 33 NaN NaN NaN "$s" row 34 NaN NaN NaN "$s" row 35 NaN NaN NaN "$s" row 36 NaN NaN NaN "$s" row 37 NaN NaN NaN "$s" row 38 NaN NaN NaN "$s" row 39 NaN NaN NaN "$s" row 40 NaN NaN NaN "$s" row 41 NaN NaN NaN "$s" row 42 NaN NaN NaN "$s" row 43 NaN NaN NaN "$s" row 44 NaN NaN NaN "$s" row 45 NaN NaN NaN "$s" row 46 NaN NaN NaN "$s" row 47 NaN NaN NaN "$s" row 48 NaN NaN NaN "$s" row 49 NaN NaN NaN "$s" row 50 NaN NaN NaN "$s" row 51 NaN NaN NaN "$s" row 52 NaN NaN NaN "$s" row 53 NaN NaN NaN "$s" row 54 NaN NaN NaN "$s" row 55 NaN NaN NaN "$s" row 56 NaN NaN NaN "$s" row 57 NaN NaN NaN "$s" row 58 NaN NaN NaN "$s" row 59 NaN NaN NaN "$s" row 60 NaN NaN NaN "$s" row 61 NaN NaN NaN "$s" row 62 NaN NaN NaN "$s" row 63 NaN NaN NaN "$s" row 64 NaN NaN NaN "$s" row 65 NaN NaN NaN "$s" row 66 NaN NaN NaN "$s" row 67 NaN NaN NaN "$s" row 68 NaN NaN NaN "$s" row 69 NaN NaN NaN "$s" row 70 NaN NaN NaN "$s" row 71 NaN NaN NaN "$s" row 72 NaN NaN NaN "$s" row 73 NaN NaN NaN "$s" row 74 NaN NaN NaN "$s" row 75 NaN NaN NaN "$s" row 76 NaN NaN NaN "$s" row 77 NaN NaN NaN "$s" row 78 NaN NaN NaN "$s" row 79 NaN NaN NaN "$s" row 80 NaN NaN NaN "$s" row 81 NaN NaN NaN "$s" row 82 NaN NaN NaN "$s" row 83 NaN NaN NaN "$s" row 84 NaN NaN NaN "$s" row 85 NaN NaN NaN "$s" row 86 NaN NaN NaN "$s" row 87 NaN NaN NaN "$s" row 88 NaN NaN NaN "$s" row 89 NaN NaN NaN "$s" row 90 NaN NaN NaN "$s" row 91 NaN NaN NaN "$s" row 92 NaN NaN NaN "$s" row 93 NaN NaN NaN "$s" row 94 NaN NaN NaN "$s" row 95 NaN NaN NaN "$s" row 96 NaN NaN NaN "$s" row 97 NaN NaN NaN "$s" row 98 NaN NaN NaN "$s" row 99 NaN NaN NaN "$s" row 100 NaN NaN NaN "$s" row 101 NaN NaN NaN "$s" row 102 NaN NaN NaN "$s" row 103 NaN NaN NaN "$s" row 104 NaN NaN NaN "$s" row 105 NaN NaN NaN "$s" row 106 NaN NaN NaN "$s" row 107 NaN NaN NaN "$s" row 108 NaN NaN NaN "$s" row 109 NaN NaN NaN "$s" row 110 NaN NaN NaN "$s" row 111 NaN NaN NaN "$s" row 112 NaN NaN NaN "$s" row 113 NaN NaN NaN "$s" row 114 NaN NaN NaN "$s" row 115 NaN NaN NaN "$s" row 116 NaN NaN NaN "$s" row 117 NaN NaN NaN "$s" row 118 NaN NaN NaN "$s" row 119 NaN NaN NaN "$s" row 120 NaN NaN NaN "$s" row 121 NaN NaN NaN "$s" row 122 NaN NaN NaN "$s" row 123 NaN NaN NaN "$s" row 124 NaN NaN NaN "$s" row 125 NaN NaN NaN "$s" row 126 NaN NaN NaN "$s" row 127 NaN NaN NaN "$s" row 128 NaN NaN NaN "$s" row 129 NaN NaN NaN "$s" row 130 NaN NaN NaN "$s" row 131 NaN NaN NaN "$s" row 132 NaN NaN NaN "$s" row 133 NaN NaN NaN "$s" row 134 NaN NaN NaN "$s" row 135 NaN NaN NaN "$s" row 136 NaN NaN NaN "$s" row 137 NaN NaN NaN "$s" row 138 NaN NaN NaN "$s" row 139 NaN NaN NaN "$s" row 140 NaN NaN NaN "$s" row 141 NaN NaN NaN "$s" row 142 NaN NaN NaN "$s" row 143 NaN NaN NaN "$s" row 144 NaN NaN NaN "$s" row 145 NaN NaN NaN "$s" row 146 NaN NaN NaN "$s" row 147 NaN NaN NaN "$s" row 148 NaN NaN NaN "$s" row 149 NaN NaN NaN "$s" row 150 NaN NaN NaN "$s" row 151 NaN NaN NaN "$s" row 152 NaN NaN NaN "$s" row 153 NaN NaN NaN "$s" row 154 NaN NaN NaN "$s" row 155 NaN NaN NaN "$s" row 156 NaN NaN NaN "$s" row 157 NaN NaN NaN "$s" row 158 NaN NaN NaN "$s" row 159 NaN NaN NaN "$s" row 160 NaN NaN NaN "$s" row 161 NaN NaN NaN "$s" row 162 NaN NaN NaN "$s" row 163 NaN NaN NaN "$s" row 164 NaN NaN NaN "$s" row 165 NaN NaN NaN "$s" row 166 NaN NaN NaN "$s" row 167 NaN NaN NaN "$s" row 168 NaN NaN NaN "$s" row 169 NaN NaN NaN "$s" row 170 NaN NaN NaN "$s" row 171 NaN NaN NaN "$s" row 172 NaN NaN NaN "$s" row 173 NaN NaN NaN "$s" row 174 NaN NaN NaN "$s" row 175 NaN NaN NaN "$s" row 176 NaN NaN NaN "$s" row 177 NaN NaN NaN "$s" row 178 NaN NaN NaN "$s" row 179 NaN NaN NaN "$s" row 180 NaN NaN NaN "$s" row 181 NaN NaN NaN "$s" row 182 NaN NaN NaN "$s" row 183 NaN NaN NaN "$s" row 184 NaN NaN NaN "$s" row 185 NaN NaN NaN "$s" row 186 NaN NaN NaN "$s" row 187 NaN NaN NaN "$s" row 188 NaN NaN NaN "$s" row 189 NaN NaN NaN "$s" row 190 NaN NaN NaN "$s" row 191 NaN NaN NaN "$s" row 192 NaN NaN NaN "$s" row 193 NaN NaN NaN "$s" row 194 NaN NaN NaN "$s" row 195 NaN NaN NaN "$s" row 196 NaN NaN NaN "$s" row 197 NaN NaN NaN "$s" row 198 NaN NaN NaN "$s" row 199 NaN NaN NaN "$s" row 200 NaN NaN NaN "$s" row 201 NaN NaN NaN "$s" row 202 NaN NaN NaN "$s" row 203 NaN NaN NaN "$s" row 204 NaN NaN NaN "$s" row 205 NaN NaN NaN "$s" row 206 NaN NaN NaN "$s" row 207 NaN NaN NaN "$s" row 208 NaN NaN NaN "$s" row 209 NaN NaN NaN "$s" row 210 NaN NaN NaN "$s" row 211 NaN NaN NaN "$s" row 212 NaN NaN NaN "$s" row 213 NaN NaN NaN "$s" row 214 NaN NaN NaN "$s" row 215 NaN NaN NaN "$s" row 216 NaN NaN NaN "$s" row 217 NaN NaN NaN "$s" row 218 NaN NaN NaN "$s" row 219 NaN NaN NaN "$s" row 220 NaN NaN NaN "$s" row 221 NaN NaN NaN "$s" row 222 NaN NaN NaN "$s" row 223 NaN NaN NaN "$s" row 224 NaN NaN 0 "$o" {SeriesSlot} {HKWeight_0} set s "$o.HKWeight_0" "$s" order 82 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_1} set s "$o.HKWeight_1" "$s" order 83 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_10} set s "$o.HKWeight_10" "$s" order 84 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_11} set s "$o.HKWeight_11" "$s" order 85 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_12} set s "$o.HKWeight_12" "$s" order 86 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_13} set s "$o.HKWeight_13" "$s" order 87 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_14} set s "$o.HKWeight_14" "$s" order 88 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_15} set s "$o.HKWeight_15" "$s" order 89 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_16} set s "$o.HKWeight_16" "$s" order 90 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_17} set s "$o.HKWeight_17" "$s" order 91 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_18} set s "$o.HKWeight_18" "$s" order 92 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_19} set s "$o.HKWeight_19" "$s" order 93 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_2} set s "$o.HKWeight_2" "$s" order 94 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_20} set s "$o.HKWeight_20" "$s" order 95 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_21} set s "$o.HKWeight_21" "$s" order 96 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_22} set s "$o.HKWeight_22" "$s" order 97 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_23} set s "$o.HKWeight_23" "$s" order 98 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_24} set s "$o.HKWeight_24" "$s" order 99 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_25} set s "$o.HKWeight_25" "$s" order 100 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_3} set s "$o.HKWeight_3" "$s" order 101 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_4} set s "$o.HKWeight_4" "$s" order 102 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_5} set s "$o.HKWeight_5" "$s" order 103 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_6} set s "$o.HKWeight_6" "$s" order 104 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_7} set s "$o.HKWeight_7" "$s" order 105 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_8} set s "$o.HKWeight_8" "$s" order 106 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_9} set s "$o.HKWeight_9" "$s" order 107 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_26} set s "$o.HKWeight_26" "$s" order 108 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_27} set s "$o.HKWeight_27" "$s" order 109 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_28} set s "$o.HKWeight_28" "$s" order 110 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_29} set s "$o.HKWeight_29" "$s" order 111 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_30} set s "$o.HKWeight_30" "$s" order 112 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_31} set s "$o.HKWeight_31" "$s" order 113 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_32} set s "$o.HKWeight_32" "$s" order 114 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_33} set s "$o.HKWeight_33" "$s" order 115 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_34} set s "$o.HKWeight_34" "$s" order 116 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_35} set s "$o.HKWeight_35" "$s" order 117 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_36} set s "$o.HKWeight_36" "$s" order 118 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_37} set s "$o.HKWeight_37" "$s" order 119 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_40} set s "$o.HKWeight_40" "$s" order 120 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_41} set s "$o.HKWeight_41" "$s" order 121 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_42} set s "$o.HKWeight_42" "$s" order 122 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_43} set s "$o.HKWeight_43" "$s" order 123 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_44} set s "$o.HKWeight_44" "$s" order 124 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_45} set s "$o.HKWeight_45" "$s" order 125 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_46} set s "$o.HKWeight_46" "$s" order 126 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_47} set s "$o.HKWeight_47" "$s" order 127 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_48} set s "$o.HKWeight_48" "$s" order 128 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_49} set s "$o.HKWeight_49" "$s" order 129 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_50} set s "$o.HKWeight_50" "$s" order 130 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_51} set s "$o.HKWeight_51" "$s" order 131 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_52} set s "$o.HKWeight_52" "$s" order 132 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_54} set s "$o.HKWeight_54" "$s" order 133 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_55} set s "$o.HKWeight_55" "$s" order 134 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_56} set s "$o.HKWeight_56" "$s" order 135 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_57} set s "$o.HKWeight_57" "$s" order 136 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_58} set s "$o.HKWeight_58" "$s" order 137 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_59} set s "$o.HKWeight_59" "$s" order 138 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_60} set s "$o.HKWeight_60" "$s" order 139 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_61} set s "$o.HKWeight_61" "$s" order 140 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_62} set s "$o.HKWeight_62" "$s" order 141 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_63} set s "$o.HKWeight_63" "$s" order 142 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_64} set s "$o.HKWeight_64" "$s" order 143 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_65} set s "$o.HKWeight_65" "$s" order 144 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_66} set s "$o.HKWeight_66" "$s" order 145 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_67} set s "$o.HKWeight_67" "$s" order 146 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_68} set s "$o.HKWeight_68" "$s" order 147 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_69} set s "$o.HKWeight_69" "$s" order 148 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_70} set s "$o.HKWeight_70" "$s" order 149 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_71} set s "$o.HKWeight_71" "$s" order 150 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_72} set s "$o.HKWeight_72" "$s" order 151 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_73} set s "$o.HKWeight_73" "$s" order 152 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_74} set s "$o.HKWeight_74" "$s" order 153 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_75} set s "$o.HKWeight_75" "$s" order 154 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_100} set s "$o.HKWeight_100" "$s" order 155 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_76} set s "$o.HKWeight_76" "$s" order 156 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_77} set s "$o.HKWeight_77" "$s" order 157 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_78} set s "$o.HKWeight_78" "$s" order 158 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_79} set s "$o.HKWeight_79" "$s" order 159 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_80} set s "$o.HKWeight_80" "$s" order 160 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_81} set s "$o.HKWeight_81" "$s" order 161 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_82} set s "$o.HKWeight_82" "$s" order 162 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_83} set s "$o.HKWeight_83" "$s" order 163 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_84} set s "$o.HKWeight_84" "$s" order 164 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_85} set s "$o.HKWeight_85" "$s" order 165 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_86} set s "$o.HKWeight_86" "$s" order 166 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_87} set s "$o.HKWeight_87" "$s" order 167 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_88} set s "$o.HKWeight_88" "$s" order 168 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_89} set s "$o.HKWeight_89" "$s" order 169 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_90} set s "$o.HKWeight_90" "$s" order 170 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_91} set s "$o.HKWeight_91" "$s" order 171 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_92} set s "$o.HKWeight_92" "$s" order 172 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_93} set s "$o.HKWeight_93" "$s" order 173 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_94} set s "$o.HKWeight_94" "$s" order 174 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_95} set s "$o.HKWeight_95" "$s" order 175 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_96} set s "$o.HKWeight_96" "$s" order 176 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_97} set s "$o.HKWeight_97" "$s" order 177 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_98} set s "$o.HKWeight_98" "$s" order 178 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_99} set s "$o.HKWeight_99" "$s" order 179 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_101} set s "$o.HKWeight_101" "$s" order 180 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_102} set s "$o.HKWeight_102" "$s" order 181 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_103} set s "$o.HKWeight_103" "$s" order 182 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_104} set s "$o.HKWeight_104" "$s" order 183 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_105} set s "$o.HKWeight_105" "$s" order 184 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_106} set s "$o.HKWeight_106" "$s" order 185 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_107} set s "$o.HKWeight_107" "$s" order 186 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_108} set s "$o.HKWeight_108" "$s" order 187 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_109} set s "$o.HKWeight_109" "$s" order 188 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_110} set s "$o.HKWeight_110" "$s" order 189 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_111} set s "$o.HKWeight_111" "$s" order 190 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_112} set s "$o.HKWeight_112" "$s" order 191 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_113} set s "$o.HKWeight_113" "$s" order 192 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_114} set s "$o.HKWeight_114" "$s" order 193 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_115} set s "$o.HKWeight_115" "$s" order 194 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_116} set s "$o.HKWeight_116" "$s" order 195 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_117} set s "$o.HKWeight_117" "$s" order 196 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_118} set s "$o.HKWeight_118" "$s" order 197 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_119} set s "$o.HKWeight_119" "$s" order 198 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_120} set s "$o.HKWeight_120" "$s" order 199 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_121} set s "$o.HKWeight_121" "$s" order 200 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_122} set s "$o.HKWeight_122" "$s" order 201 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_123} set s "$o.HKWeight_123" "$s" order 202 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_124} set s "$o.HKWeight_124" "$s" order 203 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_125} set s "$o.HKWeight_125" "$s" order 204 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_126} set s "$o.HKWeight_126" "$s" order 205 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_127} set s "$o.HKWeight_127" "$s" order 206 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_128} set s "$o.HKWeight_128" "$s" order 207 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_129} set s "$o.HKWeight_129" "$s" order 208 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_130} set s "$o.HKWeight_130" "$s" order 209 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_131} set s "$o.HKWeight_131" "$s" order 210 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_132} set s "$o.HKWeight_132" "$s" order 211 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_133} set s "$o.HKWeight_133" "$s" order 212 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_134} set s "$o.HKWeight_134" "$s" order 213 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_135} set s "$o.HKWeight_135" "$s" order 214 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_136} set s "$o.HKWeight_136" "$s" order 215 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_137} set s "$o.HKWeight_137" "$s" order 216 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_138} set s "$o.HKWeight_138" "$s" order 217 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_139} set s "$o.HKWeight_139" "$s" order 218 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_140} set s "$o.HKWeight_140" "$s" order 219 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_141} set s "$o.HKWeight_141" "$s" order 220 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_142} set s "$o.HKWeight_142" "$s" order 221 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_143} set s "$o.HKWeight_143" "$s" order 222 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_144} set s "$o.HKWeight_144" "$s" order 223 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_145} set s "$o.HKWeight_145" "$s" order 224 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_146} set s "$o.HKWeight_146" "$s" order 225 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_147} set s "$o.HKWeight_147" "$s" order 226 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_148} set s "$o.HKWeight_148" "$s" order 227 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_149} set s "$o.HKWeight_149" "$s" order 228 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_150} set s "$o.HKWeight_150" "$s" order 229 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_151} set s "$o.HKWeight_151" "$s" order 230 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_152} set s "$o.HKWeight_152" "$s" order 231 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_153} set s "$o.HKWeight_153" "$s" order 232 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_154} set s "$o.HKWeight_154" "$s" order 233 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_155} set s "$o.HKWeight_155" "$s" order 234 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_156} set s "$o.HKWeight_156" "$s" order 235 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_157} set s "$o.HKWeight_157" "$s" order 236 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_158} set s "$o.HKWeight_158" "$s" order 237 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_159} set s "$o.HKWeight_159" "$s" order 238 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_160} set s "$o.HKWeight_160" "$s" order 239 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_161} set s "$o.HKWeight_161" "$s" order 240 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_162} set s "$o.HKWeight_162" "$s" order 241 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_163} set s "$o.HKWeight_163" "$s" order 242 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_164} set s "$o.HKWeight_164" "$s" order 243 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_165} set s "$o.HKWeight_165" "$s" order 244 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_166} set s "$o.HKWeight_166" "$s" order 245 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_167} set s "$o.HKWeight_167" "$s" order 246 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_168} set s "$o.HKWeight_168" "$s" order 247 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_169} set s "$o.HKWeight_169" "$s" order 248 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_170} set s "$o.HKWeight_170" "$s" order 249 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_171} set s "$o.HKWeight_171" "$s" order 250 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_172} set s "$o.HKWeight_172" "$s" order 251 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_173} set s "$o.HKWeight_173" "$s" order 252 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_174} set s "$o.HKWeight_174" "$s" order 253 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_175} set s "$o.HKWeight_175" "$s" order 254 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_176} set s "$o.HKWeight_176" "$s" order 255 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_177} set s "$o.HKWeight_177" "$s" order 256 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_178} set s "$o.HKWeight_178" "$s" order 257 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_179} set s "$o.HKWeight_179" "$s" order 258 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_180} set s "$o.HKWeight_180" "$s" order 259 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_181} set s "$o.HKWeight_181" "$s" order 260 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_182} set s "$o.HKWeight_182" "$s" order 261 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_183} set s "$o.HKWeight_183" "$s" order 262 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_184} set s "$o.HKWeight_184" "$s" order 263 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_185} set s "$o.HKWeight_185" "$s" order 264 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_186} set s "$o.HKWeight_186" "$s" order 265 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_187} set s "$o.HKWeight_187" "$s" order 266 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_188} set s "$o.HKWeight_188" "$s" order 267 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_189} set s "$o.HKWeight_189" "$s" order 268 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_190} set s "$o.HKWeight_190" "$s" order 269 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_191} set s "$o.HKWeight_191" "$s" order 270 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_192} set s "$o.HKWeight_192" "$s" order 271 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_193} set s "$o.HKWeight_193" "$s" order 272 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_194} set s "$o.HKWeight_194" "$s" order 273 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_195} set s "$o.HKWeight_195" "$s" order 274 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_196} set s "$o.HKWeight_196" "$s" order 275 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_197} set s "$o.HKWeight_197" "$s" order 276 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_198} set s "$o.HKWeight_198" "$s" order 277 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_199} set s "$o.HKWeight_199" "$s" order 278 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_200} set s "$o.HKWeight_200" "$s" order 279 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_201} set s "$o.HKWeight_201" "$s" order 280 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_202} set s "$o.HKWeight_202" "$s" order 281 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_203} set s "$o.HKWeight_203" "$s" order 282 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_204} set s "$o.HKWeight_204" "$s" order 283 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_205} set s "$o.HKWeight_205" "$s" order 284 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_206} set s "$o.HKWeight_206" "$s" order 285 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_207} set s "$o.HKWeight_207" "$s" order 286 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_208} set s "$o.HKWeight_208" "$s" order 287 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_209} set s "$o.HKWeight_209" "$s" order 288 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_210} set s "$o.HKWeight_210" "$s" order 289 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_211} set s "$o.HKWeight_211" "$s" order 290 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_212} set s "$o.HKWeight_212" "$s" order 291 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_213} set s "$o.HKWeight_213" "$s" order 292 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_214} set s "$o.HKWeight_214" "$s" order 293 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_215} set s "$o.HKWeight_215" "$s" order 294 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_216} set s "$o.HKWeight_216" "$s" order 295 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_217} set s "$o.HKWeight_217" "$s" order 296 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_218} set s "$o.HKWeight_218" "$s" order 297 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_219} set s "$o.HKWeight_219" "$s" order 298 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_220} set s "$o.HKWeight_220" "$s" order 299 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_221} set s "$o.HKWeight_221" "$s" order 300 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_222} set s "$o.HKWeight_222" "$s" order 301 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_223} set s "$o.HKWeight_223" "$s" order 302 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_224} set s "$o.HKWeight_224" "$s" order 303 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_225} set s "$o.HKWeight_225" "$s" order 304 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_38} set s "$o.HKWeight_38" "$s" order 305 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_39} set s "$o.HKWeight_39" "$s" order 306 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_53} set s "$o.HKWeight_53" "$s" order 307 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Estimate Avg} set s "$o.HK Estimate Avg" "$s" order 308 "$s" units 30 {%f} 2 "$s" value 0.22630657003283514 {MW/cms} "$o" {SeriesSlot} {Spill Required} set s "$o.Spill Required" "$s" order 309 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Estimate Avg} set s "$o.Turbine Release Estimate Avg" "$s" order 310 "$s" units 15 {%f} 2 "$s" value 3560.4064694000099 {cms} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Max Available Storage} set s "$o.Max Available Storage" "$s" order 307 "$s" units 8 {%f} 2 "$s" value 43793702.265323579 {m3} "$o" {SeriesSlot} {Active Storage} set s "$o.Active Storage" "$s" order 308 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 43793702.265323579 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elev Ramp Limit Down} set s "$o.Pool Elev Ramp Limit Down" "$s" order 309 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {ScalarSlot} {Pool Elev Ramp Limit Up} set s "$o.Pool Elev Ramp Limit Up" "$s" order 310 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 311 "$s" userDescript {2016-09-29 DMI data loads these value from EAS Account
4911 - RRH_DESIRED_ELEVATION_FT} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 214.82304000000022 @ 7 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 12 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 12 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 12 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 12 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 12 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 12 214.85352000000023 214.88400000000021 214.91448000000022 214.94496000000024 214.97544000000022 @ 4 214.94496000000024 214.91448000000022 214.88400000000021 214.85352000000023 214.82304000000022 @ 6 "$o" {SeriesSlot} {Draft Feet} set s "$o.Draft Feet" "$s" order 312 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax 0 1.2192000000000014 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Percent} set s "$o.Draft Percent" "$s" order 313 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume} set s "$o.Draft Volume" "$s" order 314 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 278196027.65844518 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 315 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 316 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 317 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 318 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 319 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 320 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 321 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 322 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Ramp Limit Down} set s "$o.Outflow Ramp Limit Down" "$s" order 323 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {ScalarSlot} {Outflow Ramp Limit Up} set s "$o.Outflow Ramp Limit Up" "$s" order 324 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 349 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spill Reduced Bound} set s "$o.Spill Reduced Bound" "$s" order 349 "$s" units 15 {%f} 2 "$s" value 1415.8423295999996 {cms} "$o" {PeriodicSlot} {Summer Fish Spill Default Shape} set s "$o.Summer Fish Spill Default Shape" "$s" order 29 "$s" userDescript {This slot contains a set of multipliers to calculate the RRH fish spill based on the estimated outflow for each day. It gets used as a back-up default calculation during fish spill season if the Fish Spill Manual gets imported as 0 kcfs (i.e. Central did not receive a spill signal from Chelan).

These shape values are based on an overall daily spill percent of 9% of total outflow.

The shape values are based on the document 'Blocks of spring and summer fish spill at RR and RI.docx' provided by Scott Buehn, 1/12/17. This matches updated tables provided in Spill shape info for Scott.xlsx (04/0/2017).} "$s" resize 24 1 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 0.089999999999999997 "$s" row 1 0.089999999999999997 "$s" row 2 0.059999999999999998 "$s" row 3 0.059999999999999998 "$s" row 4 0.059999999999999998 "$s" row 5 0.059999999999999998 "$s" row 6 0.059999999999999998 "$s" row 7 0.059999999999999998 "$s" row 8 0.089999999999999997 "$s" row 9 0.089999999999999997 "$s" row 10 0.12 "$s" row 11 0.12 "$s" row 12 0.12 "$s" row 13 0.12 "$s" row 14 0.12 "$s" row 15 0.12 "$s" row 16 0.089999999999999997 "$s" row 17 0.089999999999999997 "$s" row 18 0.089999999999999997 "$s" row 19 0.089999999999999997 "$s" row 20 0.089999999999999997 "$s" row 21 0.089999999999999997 "$s" row 22 0.089999999999999997 "$s" row 23 0.089999999999999997 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Reg 1 DAY 1900 1 HOUR "$o" {PeriodicSlot} {Spring Fish Spill Default Shape} set s "$o.Spring Fish Spill Default Shape" "$s" order 29 "$s" userDescript {This slot contains a set of multipliers to calculate the RRH fish spill based on the estimated outflow for each day. It gets used as a back-up default calculation during fish spill season if the Fish Spill Manual gets imported as 0 kcfs (i.e. Central did not receive a spill signal from Chelan).

These shape values are based on an overall daily spill percent of 0% of total outflow.

The shape values are based on the document 'Blocks of spring and summer fish spill at RR and RI.docx' provided by Scott Buehn, 1/12/17. This matches updated tables provided in Spill shape info for Scott.xlsx (04/0/2017).} "$s" resize 24 1 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Reg 1 DAY 1900 1 HOUR "$o" {SeriesSlot} {Fish Spill Default} set s "$o.Fish Spill Default" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Content Available} set s "$o.Content Available" "$s" order 331 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Coefficient Approximation Default} set s "$o.Power Coefficient Approximation Default" "$s" order 19 "$s" computedByExpr 2 {"PowerCoeffApproxDefault"( % "Grand Coulee" )} "$s" units 31 {%f} 2 "$s" value 0.77449998403386888 {MW/cms} "$o" SlotGroup {Special Operations Hard Constraints} set sg "$o.Special Operations Hard Constraints" "$sg" SlotGroup Order 72 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Spill} "$o" SlotGroup {Pool Elev Margin} set sg "$o.Pool Elev Margin" "$sg" SlotGroup Order 62 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation Margin} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max Margin Default} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Max with Margin} "$sg" SlotGroup LocalSlot 3 {Pool Elevation Min Margin Default} "$sg" SlotGroup LocalSlot 4 {Pool Elevation Min with Margin} "$sg" SlotGroup LocalSlot 5 {Elevation Max Controlling} "$sg" SlotGroup LocalSlot 6 {Elevation Min Controlling} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Min Margin} "$sg" SlotGroup LocalSlot 8 {Pool Elevation Max Margin} "$o" SlotGroup {Efficiency Objective} set sg "$o.Efficiency Objective" "$sg" SlotGroup Order 49 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Shifted Operating Head} "$sg" SlotGroup LocalSlot 1 {Shifted Turbine Release} "$sg" SlotGroup LocalSlot 2 {Efficiency} "$sg" SlotGroup LocalSlot 3 {Efficiency Estimate} "$sg" SlotGroup LocalSlot 4 {Max Efficiency Turbine Release} "$sg" SlotGroup LocalSlot 5 {Max Efficiency Operating Head} "$sg" SlotGroup LocalSlot 6 {cos Efficiency Theta} "$sg" SlotGroup LocalSlot 7 {sin Efficiency Theta} "$sg" SlotGroup LocalSlot 8 {Max Efficiency} "$o" SlotGroup {Special Operations Soft Constraints} set sg "$o.Special Operations Soft Constraints" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Soft Max Spill} "$o" SlotGroup {Spill Slots} set sg "$o.Spill Slots" "$sg" SlotGroup Order 288 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Spring Fish Spill Percent Default} "$sg" SlotGroup LocalSlot 2 {Spring Fish Spill Season Default} "$sg" SlotGroup LocalSlot 3 {Summer Fish Spill Percent Default} "$sg" SlotGroup LocalSlot 4 {Summer Fish Spill Season Default} "$sg" SlotGroup LocalSlot 5 {Spill Reduced Bound} "$sg" SlotGroup LocalSlot 6 {Spill As Energy} "$sg" SlotGroup LocalSlot 7 {Spring Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 8 {Summer Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 9 {Summer Fish Spill Default Shape} "$sg" SlotGroup LocalSlot 10 {Spring Fish Spill Default Shape} "$sg" SlotGroup LocalSlot 11 {Fish Spill Default} "$o" SlotGroup {HK Objective} set sg "$o.HK Objective" "$sg" SlotGroup Order 256 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HK Operating Head Count} "$sg" SlotGroup LocalSlot 1 {HK Table Operating Head} "$sg" SlotGroup LocalSlot 2 {HK Table Turbine Release} "$sg" SlotGroup LocalSlot 3 {HK Turbine Release Count} "$sg" SlotGroup LocalSlot 4 {HK Table} "$sg" SlotGroup LocalSlot 5 {HK Count} "$sg" SlotGroup LocalSlot 6 {HK Table 3D} "$sg" SlotGroup LocalSlot 7 {HK} "$sg" SlotGroup LocalSlot 8 {Spill Required} "$o" SlotGroup {HK Weights} set sg "$o.HK Weights" "$sg" SlotGroup Order 248 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HKWeight_0} "$sg" SlotGroup LocalSlot 1 {HKWeight_1} "$sg" SlotGroup LocalSlot 2 {HKWeight_10} "$sg" SlotGroup LocalSlot 3 {HKWeight_11} "$sg" SlotGroup LocalSlot 4 {HKWeight_12} "$sg" SlotGroup LocalSlot 5 {HKWeight_13} "$sg" SlotGroup LocalSlot 6 {HKWeight_14} "$sg" SlotGroup LocalSlot 7 {HKWeight_15} "$sg" SlotGroup LocalSlot 8 {HKWeight_16} "$sg" SlotGroup LocalSlot 9 {HKWeight_17} "$sg" SlotGroup LocalSlot 10 {HKWeight_18} "$sg" SlotGroup LocalSlot 11 {HKWeight_19} "$sg" SlotGroup LocalSlot 12 {HKWeight_2} "$sg" SlotGroup LocalSlot 13 {HKWeight_20} "$sg" SlotGroup LocalSlot 14 {HKWeight_21} "$sg" SlotGroup LocalSlot 15 {HKWeight_22} "$sg" SlotGroup LocalSlot 16 {HKWeight_23} "$sg" SlotGroup LocalSlot 17 {HKWeight_24} "$sg" SlotGroup LocalSlot 18 {HKWeight_25} "$sg" SlotGroup LocalSlot 19 {HKWeight_3} "$sg" SlotGroup LocalSlot 20 {HKWeight_4} "$sg" SlotGroup LocalSlot 21 {HKWeight_5} "$sg" SlotGroup LocalSlot 22 {HKWeight_6} "$sg" SlotGroup LocalSlot 23 {HKWeight_7} "$sg" SlotGroup LocalSlot 24 {HKWeight_8} "$sg" SlotGroup LocalSlot 25 {HKWeight_9} "$sg" SlotGroup LocalSlot 26 {HKWeight_26} "$sg" SlotGroup LocalSlot 27 {HKWeight_27} "$sg" SlotGroup LocalSlot 28 {HKWeight_28} "$sg" SlotGroup LocalSlot 29 {HKWeight_29} "$sg" SlotGroup LocalSlot 30 {HKWeight_30} "$sg" SlotGroup LocalSlot 31 {HKWeight_31} "$sg" SlotGroup LocalSlot 32 {HKWeight_32} "$sg" SlotGroup LocalSlot 33 {HKWeight_33} "$sg" SlotGroup LocalSlot 34 {HKWeight_34} "$sg" SlotGroup LocalSlot 35 {HKWeight_35} "$sg" SlotGroup LocalSlot 36 {HKWeight_36} "$sg" SlotGroup LocalSlot 37 {HKWeight_37} "$sg" SlotGroup LocalSlot 38 {HKWeight_40} "$sg" SlotGroup LocalSlot 39 {HKWeight_41} "$sg" SlotGroup LocalSlot 40 {HKWeight_42} "$sg" SlotGroup LocalSlot 41 {HKWeight_43} "$sg" SlotGroup LocalSlot 42 {HKWeight_44} "$sg" SlotGroup LocalSlot 43 {HKWeight_45} "$sg" SlotGroup LocalSlot 44 {HKWeight_46} "$sg" SlotGroup LocalSlot 45 {HKWeight_47} "$sg" SlotGroup LocalSlot 46 {HKWeight_48} "$sg" SlotGroup LocalSlot 47 {HKWeight_49} "$sg" SlotGroup LocalSlot 48 {HKWeight_50} "$sg" SlotGroup LocalSlot 49 {HKWeight_51} "$sg" SlotGroup LocalSlot 50 {HKWeight_52} "$sg" SlotGroup LocalSlot 51 {HKWeight_54} "$sg" SlotGroup LocalSlot 52 {HKWeight_55} "$sg" SlotGroup LocalSlot 53 {HKWeight_56} "$sg" SlotGroup LocalSlot 54 {HKWeight_57} "$sg" SlotGroup LocalSlot 55 {HKWeight_58} "$sg" SlotGroup LocalSlot 56 {HKWeight_59} "$sg" SlotGroup LocalSlot 57 {HKWeight_60} "$sg" SlotGroup LocalSlot 58 {HKWeight_61} "$sg" SlotGroup LocalSlot 59 {HKWeight_62} "$sg" SlotGroup LocalSlot 60 {HKWeight_63} "$sg" SlotGroup LocalSlot 61 {HKWeight_64} "$sg" SlotGroup LocalSlot 62 {HKWeight_65} "$sg" SlotGroup LocalSlot 63 {HKWeight_66} "$sg" SlotGroup LocalSlot 64 {HKWeight_67} "$sg" SlotGroup LocalSlot 65 {HKWeight_68} "$sg" SlotGroup LocalSlot 66 {HKWeight_69} "$sg" SlotGroup LocalSlot 67 {HKWeight_70} "$sg" SlotGroup LocalSlot 68 {HKWeight_71} "$sg" SlotGroup LocalSlot 69 {HKWeight_72} "$sg" SlotGroup LocalSlot 70 {HKWeight_73} "$sg" SlotGroup LocalSlot 71 {HKWeight_74} "$sg" SlotGroup LocalSlot 72 {HKWeight_75} "$sg" SlotGroup LocalSlot 73 {HKWeight_100} "$sg" SlotGroup LocalSlot 74 {HKWeight_76} "$sg" SlotGroup LocalSlot 75 {HKWeight_77} "$sg" SlotGroup LocalSlot 76 {HKWeight_78} "$sg" SlotGroup LocalSlot 77 {HKWeight_79} "$sg" SlotGroup LocalSlot 78 {HKWeight_80} "$sg" SlotGroup LocalSlot 79 {HKWeight_81} "$sg" SlotGroup LocalSlot 80 {HKWeight_82} "$sg" SlotGroup LocalSlot 81 {HKWeight_83} "$sg" SlotGroup LocalSlot 82 {HKWeight_84} "$sg" SlotGroup LocalSlot 83 {HKWeight_85} "$sg" SlotGroup LocalSlot 84 {HKWeight_86} "$sg" SlotGroup LocalSlot 85 {HKWeight_87} "$sg" SlotGroup LocalSlot 86 {HKWeight_88} "$sg" SlotGroup LocalSlot 87 {HKWeight_89} "$sg" SlotGroup LocalSlot 88 {HKWeight_90} "$sg" SlotGroup LocalSlot 89 {HKWeight_91} "$sg" SlotGroup LocalSlot 90 {HKWeight_92} "$sg" SlotGroup LocalSlot 91 {HKWeight_93} "$sg" SlotGroup LocalSlot 92 {HKWeight_94} "$sg" SlotGroup LocalSlot 93 {HKWeight_95} "$sg" SlotGroup LocalSlot 94 {HKWeight_96} "$sg" SlotGroup LocalSlot 95 {HKWeight_97} "$sg" SlotGroup LocalSlot 96 {HKWeight_98} "$sg" SlotGroup LocalSlot 97 {HKWeight_99} "$sg" SlotGroup LocalSlot 98 {HKWeight_101} "$sg" SlotGroup LocalSlot 99 {HKWeight_102} "$sg" SlotGroup LocalSlot 100 {HKWeight_103} "$sg" SlotGroup LocalSlot 101 {HKWeight_104} "$sg" SlotGroup LocalSlot 102 {HKWeight_105} "$sg" SlotGroup LocalSlot 103 {HKWeight_106} "$sg" SlotGroup LocalSlot 104 {HKWeight_107} "$sg" SlotGroup LocalSlot 105 {HKWeight_108} "$sg" SlotGroup LocalSlot 106 {HKWeight_109} "$sg" SlotGroup LocalSlot 107 {HKWeight_110} "$sg" SlotGroup LocalSlot 108 {HKWeight_111} "$sg" SlotGroup LocalSlot 109 {HKWeight_112} "$sg" SlotGroup LocalSlot 110 {HKWeight_113} "$sg" SlotGroup LocalSlot 111 {HKWeight_114} "$sg" SlotGroup LocalSlot 112 {HKWeight_115} "$sg" SlotGroup LocalSlot 113 {HKWeight_116} "$sg" SlotGroup LocalSlot 114 {HKWeight_117} "$sg" SlotGroup LocalSlot 115 {HKWeight_118} "$sg" SlotGroup LocalSlot 116 {HKWeight_119} "$sg" SlotGroup LocalSlot 117 {HKWeight_120} "$sg" SlotGroup LocalSlot 118 {HKWeight_121} "$sg" SlotGroup LocalSlot 119 {HKWeight_122} "$sg" SlotGroup LocalSlot 120 {HKWeight_123} "$sg" SlotGroup LocalSlot 121 {HKWeight_124} "$sg" SlotGroup LocalSlot 122 {HKWeight_125} "$sg" SlotGroup LocalSlot 123 {HKWeight_126} "$sg" SlotGroup LocalSlot 124 {HKWeight_127} "$sg" SlotGroup LocalSlot 125 {HKWeight_128} "$sg" SlotGroup LocalSlot 126 {HKWeight_129} "$sg" SlotGroup LocalSlot 127 {HKWeight_130} "$sg" SlotGroup LocalSlot 128 {HKWeight_131} "$sg" SlotGroup LocalSlot 129 {HKWeight_132} "$sg" SlotGroup LocalSlot 130 {HKWeight_133} "$sg" SlotGroup LocalSlot 131 {HKWeight_134} "$sg" SlotGroup LocalSlot 132 {HKWeight_135} "$sg" SlotGroup LocalSlot 133 {HKWeight_136} "$sg" SlotGroup LocalSlot 134 {HKWeight_137} "$sg" SlotGroup LocalSlot 135 {HKWeight_138} "$sg" SlotGroup LocalSlot 136 {HKWeight_139} "$sg" SlotGroup LocalSlot 137 {HKWeight_140} "$sg" SlotGroup LocalSlot 138 {HKWeight_141} "$sg" SlotGroup LocalSlot 139 {HKWeight_142} "$sg" SlotGroup LocalSlot 140 {HKWeight_143} "$sg" SlotGroup LocalSlot 141 {HKWeight_144} "$sg" SlotGroup LocalSlot 142 {HKWeight_145} "$sg" SlotGroup LocalSlot 143 {HKWeight_146} "$sg" SlotGroup LocalSlot 144 {HKWeight_147} "$sg" SlotGroup LocalSlot 145 {HKWeight_148} "$sg" SlotGroup LocalSlot 146 {HKWeight_149} "$sg" SlotGroup LocalSlot 147 {HKWeight_150} "$sg" SlotGroup LocalSlot 148 {HKWeight_151} "$sg" SlotGroup LocalSlot 149 {HKWeight_152} "$sg" SlotGroup LocalSlot 150 {HKWeight_153} "$sg" SlotGroup LocalSlot 151 {HKWeight_154} "$sg" SlotGroup LocalSlot 152 {HKWeight_155} "$sg" SlotGroup LocalSlot 153 {HKWeight_156} "$sg" SlotGroup LocalSlot 154 {HKWeight_157} "$sg" SlotGroup LocalSlot 155 {HKWeight_158} "$sg" SlotGroup LocalSlot 156 {HKWeight_159} "$sg" SlotGroup LocalSlot 157 {HKWeight_160} "$sg" SlotGroup LocalSlot 158 {HKWeight_161} "$sg" SlotGroup LocalSlot 159 {HKWeight_162} "$sg" SlotGroup LocalSlot 160 {HKWeight_163} "$sg" SlotGroup LocalSlot 161 {HKWeight_164} "$sg" SlotGroup LocalSlot 162 {HKWeight_165} "$sg" SlotGroup LocalSlot 163 {HKWeight_166} "$sg" SlotGroup LocalSlot 164 {HKWeight_167} "$sg" SlotGroup LocalSlot 165 {HKWeight_168} "$sg" SlotGroup LocalSlot 166 {HKWeight_169} "$sg" SlotGroup LocalSlot 167 {HKWeight_170} "$sg" SlotGroup LocalSlot 168 {HKWeight_171} "$sg" SlotGroup LocalSlot 169 {HKWeight_172} "$sg" SlotGroup LocalSlot 170 {HKWeight_173} "$sg" SlotGroup LocalSlot 171 {HKWeight_174} "$sg" SlotGroup LocalSlot 172 {HKWeight_175} "$sg" SlotGroup LocalSlot 173 {HKWeight_176} "$sg" SlotGroup LocalSlot 174 {HKWeight_177} "$sg" SlotGroup LocalSlot 175 {HKWeight_178} "$sg" SlotGroup LocalSlot 176 {HKWeight_179} "$sg" SlotGroup LocalSlot 177 {HKWeight_180} "$sg" SlotGroup LocalSlot 178 {HKWeight_181} "$sg" SlotGroup LocalSlot 179 {HKWeight_182} "$sg" SlotGroup LocalSlot 180 {HKWeight_183} "$sg" SlotGroup LocalSlot 181 {HKWeight_184} "$sg" SlotGroup LocalSlot 182 {HKWeight_185} "$sg" SlotGroup LocalSlot 183 {HKWeight_186} "$sg" SlotGroup LocalSlot 184 {HKWeight_187} "$sg" SlotGroup LocalSlot 185 {HKWeight_188} "$sg" SlotGroup LocalSlot 186 {HKWeight_189} "$sg" SlotGroup LocalSlot 187 {HKWeight_190} "$sg" SlotGroup LocalSlot 188 {HKWeight_191} "$sg" SlotGroup LocalSlot 189 {HKWeight_192} "$sg" SlotGroup LocalSlot 190 {HKWeight_193} "$sg" SlotGroup LocalSlot 191 {HKWeight_194} "$sg" SlotGroup LocalSlot 192 {HKWeight_195} "$sg" SlotGroup LocalSlot 193 {HKWeight_196} "$sg" SlotGroup LocalSlot 194 {HKWeight_197} "$sg" SlotGroup LocalSlot 195 {HKWeight_198} "$sg" SlotGroup LocalSlot 196 {HKWeight_199} "$sg" SlotGroup LocalSlot 197 {HKWeight_200} "$sg" SlotGroup LocalSlot 198 {HKWeight_201} "$sg" SlotGroup LocalSlot 199 {HKWeight_202} "$sg" SlotGroup LocalSlot 200 {HKWeight_203} "$sg" SlotGroup LocalSlot 201 {HKWeight_204} "$sg" SlotGroup LocalSlot 202 {HKWeight_205} "$sg" SlotGroup LocalSlot 203 {HKWeight_206} "$sg" SlotGroup LocalSlot 204 {HKWeight_207} "$sg" SlotGroup LocalSlot 205 {HKWeight_208} "$sg" SlotGroup LocalSlot 206 {HKWeight_209} "$sg" SlotGroup LocalSlot 207 {HKWeight_210} "$sg" SlotGroup LocalSlot 208 {HKWeight_211} "$sg" SlotGroup LocalSlot 209 {HKWeight_212} "$sg" SlotGroup LocalSlot 210 {HKWeight_213} "$sg" SlotGroup LocalSlot 211 {HKWeight_214} "$sg" SlotGroup LocalSlot 212 {HKWeight_215} "$sg" SlotGroup LocalSlot 213 {HKWeight_216} "$sg" SlotGroup LocalSlot 214 {HKWeight_217} "$sg" SlotGroup LocalSlot 215 {HKWeight_218} "$sg" SlotGroup LocalSlot 216 {HKWeight_219} "$sg" SlotGroup LocalSlot 217 {HKWeight_220} "$sg" SlotGroup LocalSlot 218 {HKWeight_221} "$sg" SlotGroup LocalSlot 219 {HKWeight_222} "$sg" SlotGroup LocalSlot 220 {HKWeight_223} "$sg" SlotGroup LocalSlot 221 {HKWeight_224} "$sg" SlotGroup LocalSlot 222 {HKWeight_225} "$sg" SlotGroup LocalSlot 223 {HKWeight_38} "$sg" SlotGroup LocalSlot 224 {HKWeight_39} "$sg" SlotGroup LocalSlot 225 {HKWeight_53} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Tailwater Elevation Baseline} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$sg" SlotGroup LocalSlot 3 {Power Coefficient Approximation Default} "$o" SlotGroup {Estimates} set sg "$o.Estimates" "$sg" SlotGroup Order 500 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {HK Estimate Avg} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Estimate Avg} "$sg" SlotGroup LocalSlot 2 {Turbine Release Estimate Avg} "$sg" SlotGroup LocalSlot 3 {Operating Head Estimate Avg} "$sg" SlotGroup LocalSlot 4 {Tailwater Estimate Avg} "$sg" SlotGroup LocalSlot 5 {Outflow Estimate Avg} "$sg" SlotGroup LocalSlot 6 {Inflow Estimate} "$sg" SlotGroup LocalSlot 7 {Operating Head Estimate} "$sg" SlotGroup LocalSlot 8 {Turbine Release Estimate} "$sg" SlotGroup LocalSlot 9 {Pool Elevation Estimate} "$sg" SlotGroup LocalSlot 10 {Tailwater Estimate} "$sg" SlotGroup LocalSlot 11 {Outflow Estimate} "$sg" SlotGroup LocalSlot 12 {HK Estimate} "$o" hideSlots 24 hideOn hideEmptyOff "$o" hids {CJAD Draft Max} "$o" hids {CJAD II Draft Max} "$o" hids {CJAD II Required Draft Volume} "$o" hids {CJAD Required Draft Volume} "$o" hids {Desired Operating Elevation} "$o" hids {Fish Bypass} "$o" hids {Fish Ladder} "$o" hids {Minimum Generation Default} "$o" hids {Minimum Generation Default Fish Bypass} "$o" hids {Minimum Generation Default Normal} "$o" hids {Minimum Generation Manual} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Spring Fish Spill Percent Default} "$o" hids {Spring Fish Spill Percent Manual} "$o" hids {Summer Fish Spill Percent Default} "$o" hids {Summer Fish Spill Percent Manual} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Allowable Curvature Scalar} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {Wells Constraints} set o "$ws.Wells Constraints" $ws SimObj $obj {DataObj} 185 1412 {} 1543 2552 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5031 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Minimum Generation Manual} set s "$o.Minimum Generation Manual" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 11 "$s" userDescript {Wells license minimum pool elevation. Sometimes set to 776 ft to be on par with other non-fed pool ranges.} "$s" units 3 {%f} 2 "$s" value 235.00080000000025 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 10 "$s" units 3 {%f} 2 "$s" value 238.04880000000026 {m} "$o" {ScalarSlot} {Pateros Elevation Coeff} set s "$o.Pateros Elevation Coeff" "$s" order 14 "$s" units 67 {%f} 2 "$s" value 0.010763910416709722 {m/cms} "$o" {ScalarSlot} {Pateros Elevation Intercept} set s "$o.Pateros Elevation Intercept" "$s" order 15 "$s" units 3 {%f} 2 "$s" value 240.48720000000026 {m} "$o" {ScalarSlot} {Recreation Weekend Min Elevation} set s "$o.Recreation Weekend Min Elevation" "$s" order 24 "$s" units 3 {%f} 2 "$s" value 237.13440000000026 {m} "$o" {ScalarSlot} {Goose Nesting Pool Elevation} set s "$o.Goose Nesting Pool Elevation" "$s" order 7 "$s" units 3 {%f} 2 "$s" value 236.22000000000025 {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 68 @ 9 60 @ 8 63 @ 16 60 @ 32 62 @ 16 60 @ 32 62 @ 8 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 725 @ 5 720 @ 4 725 @ 8 720 @ 5 725 @ 7 720 @ 4 725 @ 8 720 @ 5 725 @ 7 720 @ 4 725 @ 8 720 @ 5 725 @ 7 720 @ 4 725 @ 8 720 @ 5 725 @ 7 720 @ 4 725 @ 8 720 @ 5 725 @ 3 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 235.00080000000025 @ 121 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 213.36000000000021 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 225.55200000000025 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 237.43920000000026 @ 121 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {TableSlot} {Goose Nesting Season Operations} set s "$o.Goose Nesting Season Operations" "$s" order 9 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Goose Nesting Season Default} set s "$o.Goose Nesting Season Default" "$s" order 8 "$s" userDescript {Sets the default active season for Goose Nesting from March 15 through May 15 (based on email from Hank LuBean via Joe Taylor 3-9-11). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Goose Nesting Season Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 132541200.5 "$s" row 1 137894400.5 "$o" {TableSlot} {Recreation Weekend} set s "$o.Recreation Weekend" "$s" order 23 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Summer Fish Spill Season Default} set s "$o.Summer Fish Spill Season Default" "$s" order 42 "$s" userDescript {Sets the default active season for Summer Fish Spill from June 7 through August 20. These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Summer Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 134960400.5 "$s" row 1 146793600.5 "$o" {TableSlot} {Summer Fish Spill Season Operations} set s "$o.Summer Fish Spill Season Operations" "$s" order 43 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 134701200.5 "$s" row 1 146188800.5 "$o" {ScalarSlot} {CJAD Draft Max} set s "$o.CJAD Draft Max" "$s" order 0 "$s" units 10 {%f} 2 "$s" value 12844521.614131218 {m3} "$o" {SeriesSlot} {CJAD Required Draft Volume} set s "$o.CJAD Required Draft Volume" "$s" order 3 "$s" computedByExpr 2 {IF ( $ "Rocky Reach Constraints.CJAD Required Draft Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraft"( % "Wells", @"t" ), $ "Wells Constraints.CJAD Draft Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" userDescript {This slot calculates the volume that Wells is required to draft to make up its portion of the outlfow shortage from CJAD in accordance with the Hanford Reach Agreement D.6(a)(i) based on the actual CJAD quantity and the amount that downstream reservoirs are already drafting.} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {CJAD II Draft Max} set s "$o.CJAD II Draft Max" "$s" order 1 "$s" units 10 {%f} 2 "$s" value 12844521.614131218 {m3} "$o" {SeriesSlot} {CJAD II Required Draft Volume} set s "$o.CJAD II Required Draft Volume" "$s" order 2 "$s" computedByExpr 2 {IF ( $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [@"t"] - $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] ) * ( $ "Wells Constraints.CJAD II Draft Max" [] / ( $ "Rocky Reach Constraints.CJAD II Draft Max" [] + $ "Wells Constraints.CJAD II Draft Max" [] ) ), $ "Wells Constraints.CJAD II Draft Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Summer Fish Spill Manual} set s "$o.Summer Fish Spill Manual" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Summer Fish Spill Percent Manual} set s "$o.Summer Fish Spill Percent Manual" "$s" order 41 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {Summer Fish Spill Percent Default} set s "$o.Summer Fish Spill Percent Default" "$s" order 40 "$s" units 0 {%f} 2 "$s" value 0.080000000000000002 {NONE} "$o" {ScalarSlot} {Minimum Generation Default} set s "$o.Minimum Generation Default" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 140 {MW} "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 38 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Wells", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 283.1684659199999 @ 169 "$o" {ScalarSlot} {Pool Elevation Max Margin Default} set s "$o.Pool Elevation Max Margin Default" "$s" order 38 "$s" units 2 {%f} 2 "$s" value 0.073152000000000078 {m} "$o" {SeriesSlot} {Desired Operating Elevation} set s "$o.Desired Operating Elevation" "$s" order 4 "$s" computedByExpr 3 {IF ( "ResNameFromDataObj"( ThisObject ) & "Turbine Release" [@"t"] >= "TableInterpolation"( "ResNameFromDataObj"( ThisObject ) & "Auto Max Turbine Q", 0.00000000, 1.00000000, "ResNameFromDataObj"( ThisObject ) & "Operating Head" [@"t"], @"t" ) )\ THEN\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"] - 1.00000000 "ft"\ ELSE\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 46 "$s" units 15 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 53 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 52 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Allowable Curvature Scalar} set s "$o.Turbine Release Allowable Curvature Scalar" "$s" order 45 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 4077.6259092479991 {cms} "$o" {SeriesSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 44 "$s" computedByExpr 2 {IF ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) < 24.00000000 "hr" AND @"t" != @"24:00:00" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) ) / 1.00000000 "hr" )\ ELSE\ IF ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) < 24.00000000 "hr" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) ) / 1.00000000 "hr" )\ ELSE\ ThisObject & "Turbine Release Curvature Parameter" [] * 24.00000000\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Percent Full} set s "$o.Percent Full" "$s" order 47 "$s" computedByExpr 3 {1.00000000 - "RelativeDraft"( "ResNameFromDataObj"( ThisObject ), @"t" )} "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pool Elevation Min Margin Default} set s "$o.Pool Elevation Min Margin Default" "$s" order 51 "$s" units 2 {%f} 2 "$s" value 0.076200000000000087 {m} "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 53 "$s" units 2 {%f} 2 "$s" value 0.15240000000000017 {m} "$o" {ScalarSlot} {Pond Limits Adjustment} set s "$o.Pond Limits Adjustment" "$s" order 55 "$s" units 2 {%f} 2 "$s" value 0 {m} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Pool Elevation Max with Margin} set s "$o.Pool Elevation Max with Margin" "$s" order 23 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Max Pool Elevation", @"t" ) )\ THEN\ "Min"( ThisObject & "License Max Pool Elevation" [], ThisObject & "Special Operations Max Pool Elevation" [] )\ ELSE\ ThisObject & "License Max Pool Elevation" []\ ENDIF - ThisObject & "Pool Elevation Max Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Pool Elevation Min with Margin} set s "$o.Pool Elevation Min with Margin" "$s" order 24 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Min Pool Elevation", @"t" ) )\ THEN\ "Max"( ThisObject & "License Min Pool Elevation" [], ThisObject & "Special Operations Min Pool Elevation" [] )\ ELSE\ ThisObject & "License Min Pool Elevation" []\ ENDIF + ThisObject & "Pool Elevation Min Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Shifted Operating Head} set s "$o.Shifted Operating Head" "$s" order 25 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Turbine Release} set s "$o.Shifted Turbine Release" "$s" order 26 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency} set s "$o.Efficiency" "$s" order 25 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Estimate} set s "$o.Turbine Release Estimate" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head Estimate} set s "$o.Operating Head Estimate" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency Estimate} set s "$o.Efficiency Estimate" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Max Efficiency Turbine Release} set s "$o.Max Efficiency Turbine Release" "$s" order 14 "$s" units 15 {%f} 2 "$s" value NaN {cms} "$o" {ScalarSlot} {Max Efficiency Operating Head} set s "$o.Max Efficiency Operating Head" "$s" order 14 "$s" units 2 {%f} 2 "$s" value NaN {m} "$o" {ScalarSlot} {cos Efficiency Theta} set s "$o.cos Efficiency Theta" "$s" order 14 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {sin Efficiency Theta} set s "$o.sin Efficiency Theta" "$s" order 14 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Pool Elevation Estimate} set s "$o.Pool Elevation Estimate" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Estimate Avg} set s "$o.Pool Elevation Estimate Avg" "$s" order 14 "$s" units 2 {%f} 2 "$s" value 237.36627575333341 {m} "$o" {SeriesSlot} {Elevation Max Controlling} set s "$o.Elevation Max Controlling" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Elevation Min Controlling} set s "$o.Elevation Min Controlling" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Estimate} set s "$o.Inflow Estimate" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Estimate} set s "$o.Outflow Estimate" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Estimate Avg} set s "$o.Outflow Estimate Avg" "$s" order 16 "$s" units 15 {%f} 2 "$s" value 5922.0050995453666 {cms} "$o" {ScalarSlot} {Tailwater Estimate Avg} set s "$o.Tailwater Estimate Avg" "$s" order 16 "$s" units 2 {%f} 2 "$s" value 218.83042826713955 {m} "$o" {SeriesSlot} {Tailwater Estimate} set s "$o.Tailwater Estimate" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Operating Head Estimate Avg} set s "$o.Operating Head Estimate Avg" "$s" order 16 "$s" units 2 {%f} 2 "$s" value 18.535847486193859 {m} "$o" {ScalarSlot} {Max Efficiency} set s "$o.Max Efficiency" "$s" order 16 "$s" units 75 {%f} 2 "$s" value NaN {decimal} "$o" {SeriesSlot} {Pool Elevation Min Margin} set s "$o.Pool Elevation Min Margin" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Max Margin} set s "$o.Pool Elevation Max Margin" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 850 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 238.04880000000026 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 225.55200000000025 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 235.00080000000025 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 213.36000000000021 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {HK Estimate} set s "$o.HK Estimate" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK} set s "$o.HK" "$s" order 16 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax 0 0.24720266705042013 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_0} set s "$o.HKWeight_0" "$s" order 16 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_1} set s "$o.HKWeight_1" "$s" order 17 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_25} set s "$o.HKWeight_25" "$s" order 18 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_2} set s "$o.HKWeight_2" "$s" order 19 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_3} set s "$o.HKWeight_3" "$s" order 20 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_4} set s "$o.HKWeight_4" "$s" order 21 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_5} set s "$o.HKWeight_5" "$s" order 22 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_6} set s "$o.HKWeight_6" "$s" order 23 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_7} set s "$o.HKWeight_7" "$s" order 24 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_8} set s "$o.HKWeight_8" "$s" order 25 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_9} set s "$o.HKWeight_9" "$s" order 26 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_10} set s "$o.HKWeight_10" "$s" order 27 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_11} set s "$o.HKWeight_11" "$s" order 28 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_12} set s "$o.HKWeight_12" "$s" order 29 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_13} set s "$o.HKWeight_13" "$s" order 30 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_14} set s "$o.HKWeight_14" "$s" order 31 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_15} set s "$o.HKWeight_15" "$s" order 32 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_16} set s "$o.HKWeight_16" "$s" order 33 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_17} set s "$o.HKWeight_17" "$s" order 34 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_18} set s "$o.HKWeight_18" "$s" order 35 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_19} set s "$o.HKWeight_19" "$s" order 36 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_20} set s "$o.HKWeight_20" "$s" order 37 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_21} set s "$o.HKWeight_21" "$s" order 38 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_22} set s "$o.HKWeight_22" "$s" order 39 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_23} set s "$o.HKWeight_23" "$s" order 40 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_24} set s "$o.HKWeight_24" "$s" order 41 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {HK Table Operating Head} set s "$o.HK Table Operating Head" "$s" order 17 "$s" resize 3 1 "$s" setRowLabels {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 2 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 15.240000000000016 "$s" row 1 18.897600000000018 "$s" row 2 23.774400000000025 "$o" {TableSlot} {HK Table Turbine Release} set s "$o.HK Table Turbine Release" "$s" order 18 "$s" resize 4 1 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 15 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 28.316846591999994 "$s" row 1 3256.4373580799993 "$s" row 2 4389.1112217599984 "$s" row 3 5804.9535513599985 "$o" {ScalarSlot} {HK Operating Head Count} set s "$o.HK Operating Head Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 3 {NONE} "$o" {ScalarSlot} {HK Turbine Release Count} set s "$o.HK Turbine Release Count" "$s" order 18 "$s" units 0 {%f} 2 "$s" value 4 {NONE} "$o" {SeriesSlot} {HKWeight_26} set s "$o.HKWeight_26" "$s" order 18 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_27} set s "$o.HKWeight_27" "$s" order 19 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_28} set s "$o.HKWeight_28" "$s" order 20 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_29} set s "$o.HKWeight_29" "$s" order 21 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_30} set s "$o.HKWeight_30" "$s" order 22 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_32} set s "$o.HKWeight_32" "$s" order 23 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_31} set s "$o.HKWeight_31" "$s" order 24 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_33} set s "$o.HKWeight_33" "$s" order 25 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_34} set s "$o.HKWeight_34" "$s" order 26 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_35} set s "$o.HKWeight_35" "$s" order 27 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_36} set s "$o.HKWeight_36" "$s" order 28 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_37} set s "$o.HKWeight_37" "$s" order 29 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_40} set s "$o.HKWeight_40" "$s" order 30 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_41} set s "$o.HKWeight_41" "$s" order 31 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_42} set s "$o.HKWeight_42" "$s" order 32 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_43} set s "$o.HKWeight_43" "$s" order 33 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_44} set s "$o.HKWeight_44" "$s" order 34 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_45} set s "$o.HKWeight_45" "$s" order 35 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_46} set s "$o.HKWeight_46" "$s" order 36 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_47} set s "$o.HKWeight_47" "$s" order 37 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_48} set s "$o.HKWeight_48" "$s" order 38 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_49} set s "$o.HKWeight_49" "$s" order 39 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_50} set s "$o.HKWeight_50" "$s" order 40 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_51} set s "$o.HKWeight_51" "$s" order 41 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_52} set s "$o.HKWeight_52" "$s" order 42 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_54} set s "$o.HKWeight_54" "$s" order 43 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_55} set s "$o.HKWeight_55" "$s" order 44 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_56} set s "$o.HKWeight_56" "$s" order 45 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_57} set s "$o.HKWeight_57" "$s" order 46 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_58} set s "$o.HKWeight_58" "$s" order 47 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_59} set s "$o.HKWeight_59" "$s" order 48 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_60} set s "$o.HKWeight_60" "$s" order 49 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_61} set s "$o.HKWeight_61" "$s" order 50 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_62} set s "$o.HKWeight_62" "$s" order 51 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_63} set s "$o.HKWeight_63" "$s" order 52 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_64} set s "$o.HKWeight_64" "$s" order 53 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_65} set s "$o.HKWeight_65" "$s" order 54 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_66} set s "$o.HKWeight_66" "$s" order 55 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_67} set s "$o.HKWeight_67" "$s" order 56 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_68} set s "$o.HKWeight_68" "$s" order 57 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_69} set s "$o.HKWeight_69" "$s" order 58 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_70} set s "$o.HKWeight_70" "$s" order 59 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_71} set s "$o.HKWeight_71" "$s" order 60 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_72} set s "$o.HKWeight_72" "$s" order 61 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_73} set s "$o.HKWeight_73" "$s" order 62 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_74} set s "$o.HKWeight_74" "$s" order 63 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_75} set s "$o.HKWeight_75" "$s" order 64 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_76} set s "$o.HKWeight_76" "$s" order 65 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_77} set s "$o.HKWeight_77" "$s" order 66 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_78} set s "$o.HKWeight_78" "$s" order 67 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_79} set s "$o.HKWeight_79" "$s" order 68 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_80} set s "$o.HKWeight_80" "$s" order 69 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_81} set s "$o.HKWeight_81" "$s" order 70 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_82} set s "$o.HKWeight_82" "$s" order 71 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_83} set s "$o.HKWeight_83" "$s" order 72 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_84} set s "$o.HKWeight_84" "$s" order 73 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_85} set s "$o.HKWeight_85" "$s" order 74 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_86} set s "$o.HKWeight_86" "$s" order 75 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_87} set s "$o.HKWeight_87" "$s" order 76 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_88} set s "$o.HKWeight_88" "$s" order 77 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_89} set s "$o.HKWeight_89" "$s" order 78 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_90} set s "$o.HKWeight_90" "$s" order 79 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_91} set s "$o.HKWeight_91" "$s" order 80 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_95} set s "$o.HKWeight_95" "$s" order 81 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_92} set s "$o.HKWeight_92" "$s" order 82 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_93} set s "$o.HKWeight_93" "$s" order 83 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_94} set s "$o.HKWeight_94" "$s" order 84 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_96} set s "$o.HKWeight_96" "$s" order 85 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_97} set s "$o.HKWeight_97" "$s" order 86 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_98} set s "$o.HKWeight_98" "$s" order 87 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_99} set s "$o.HKWeight_99" "$s" order 88 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_100} set s "$o.HKWeight_100" "$s" order 89 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_101} set s "$o.HKWeight_101" "$s" order 90 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_102} set s "$o.HKWeight_102" "$s" order 91 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_103} set s "$o.HKWeight_103" "$s" order 92 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_104} set s "$o.HKWeight_104" "$s" order 93 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_105} set s "$o.HKWeight_105" "$s" order 94 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_106} set s "$o.HKWeight_106" "$s" order 95 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_107} set s "$o.HKWeight_107" "$s" order 96 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_108} set s "$o.HKWeight_108" "$s" order 97 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_109} set s "$o.HKWeight_109" "$s" order 98 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_110} set s "$o.HKWeight_110" "$s" order 99 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_111} set s "$o.HKWeight_111" "$s" order 100 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_112} set s "$o.HKWeight_112" "$s" order 101 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_113} set s "$o.HKWeight_113" "$s" order 102 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_114} set s "$o.HKWeight_114" "$s" order 103 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_115} set s "$o.HKWeight_115" "$s" order 104 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_116} set s "$o.HKWeight_116" "$s" order 105 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_117} set s "$o.HKWeight_117" "$s" order 106 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_118} set s "$o.HKWeight_118" "$s" order 107 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_119} set s "$o.HKWeight_119" "$s" order 108 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_208} set s "$o.HKWeight_208" "$s" order 109 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_209} set s "$o.HKWeight_209" "$s" order 110 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_210} set s "$o.HKWeight_210" "$s" order 111 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_211} set s "$o.HKWeight_211" "$s" order 112 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_212} set s "$o.HKWeight_212" "$s" order 113 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_213} set s "$o.HKWeight_213" "$s" order 114 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_214} set s "$o.HKWeight_214" "$s" order 115 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_215} set s "$o.HKWeight_215" "$s" order 116 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_216} set s "$o.HKWeight_216" "$s" order 117 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_217} set s "$o.HKWeight_217" "$s" order 118 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_218} set s "$o.HKWeight_218" "$s" order 119 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_219} set s "$o.HKWeight_219" "$s" order 120 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_220} set s "$o.HKWeight_220" "$s" order 121 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_221} set s "$o.HKWeight_221" "$s" order 122 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_222} set s "$o.HKWeight_222" "$s" order 123 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_223} set s "$o.HKWeight_223" "$s" order 124 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_224} set s "$o.HKWeight_224" "$s" order 125 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_225} set s "$o.HKWeight_225" "$s" order 126 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_38} set s "$o.HKWeight_38" "$s" order 127 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_39} set s "$o.HKWeight_39" "$s" order 128 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_53} set s "$o.HKWeight_53" "$s" order 129 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_120} set s "$o.HKWeight_120" "$s" order 138 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_121} set s "$o.HKWeight_121" "$s" order 139 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_122} set s "$o.HKWeight_122" "$s" order 140 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_123} set s "$o.HKWeight_123" "$s" order 141 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_124} set s "$o.HKWeight_124" "$s" order 142 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_125} set s "$o.HKWeight_125" "$s" order 143 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_126} set s "$o.HKWeight_126" "$s" order 144 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_127} set s "$o.HKWeight_127" "$s" order 145 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_128} set s "$o.HKWeight_128" "$s" order 146 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_129} set s "$o.HKWeight_129" "$s" order 147 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_130} set s "$o.HKWeight_130" "$s" order 148 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_131} set s "$o.HKWeight_131" "$s" order 149 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_132} set s "$o.HKWeight_132" "$s" order 150 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_133} set s "$o.HKWeight_133" "$s" order 151 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_134} set s "$o.HKWeight_134" "$s" order 152 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_135} set s "$o.HKWeight_135" "$s" order 153 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_136} set s "$o.HKWeight_136" "$s" order 154 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_137} set s "$o.HKWeight_137" "$s" order 155 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_138} set s "$o.HKWeight_138" "$s" order 156 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_139} set s "$o.HKWeight_139" "$s" order 157 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_140} set s "$o.HKWeight_140" "$s" order 158 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_141} set s "$o.HKWeight_141" "$s" order 159 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_142} set s "$o.HKWeight_142" "$s" order 160 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_143} set s "$o.HKWeight_143" "$s" order 161 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_144} set s "$o.HKWeight_144" "$s" order 162 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_145} set s "$o.HKWeight_145" "$s" order 163 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_146} set s "$o.HKWeight_146" "$s" order 164 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_147} set s "$o.HKWeight_147" "$s" order 165 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_148} set s "$o.HKWeight_148" "$s" order 166 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_149} set s "$o.HKWeight_149" "$s" order 167 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_150} set s "$o.HKWeight_150" "$s" order 168 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_151} set s "$o.HKWeight_151" "$s" order 169 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_152} set s "$o.HKWeight_152" "$s" order 170 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_153} set s "$o.HKWeight_153" "$s" order 171 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_154} set s "$o.HKWeight_154" "$s" order 172 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_155} set s "$o.HKWeight_155" "$s" order 173 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_156} set s "$o.HKWeight_156" "$s" order 174 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_157} set s "$o.HKWeight_157" "$s" order 175 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_158} set s "$o.HKWeight_158" "$s" order 176 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_159} set s "$o.HKWeight_159" "$s" order 177 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_160} set s "$o.HKWeight_160" "$s" order 178 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_161} set s "$o.HKWeight_161" "$s" order 179 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_162} set s "$o.HKWeight_162" "$s" order 180 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_163} set s "$o.HKWeight_163" "$s" order 181 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_164} set s "$o.HKWeight_164" "$s" order 182 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_165} set s "$o.HKWeight_165" "$s" order 183 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_166} set s "$o.HKWeight_166" "$s" order 184 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_167} set s "$o.HKWeight_167" "$s" order 185 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_168} set s "$o.HKWeight_168" "$s" order 186 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_169} set s "$o.HKWeight_169" "$s" order 187 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_170} set s "$o.HKWeight_170" "$s" order 188 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_171} set s "$o.HKWeight_171" "$s" order 189 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_172} set s "$o.HKWeight_172" "$s" order 190 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_173} set s "$o.HKWeight_173" "$s" order 191 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_174} set s "$o.HKWeight_174" "$s" order 192 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_175} set s "$o.HKWeight_175" "$s" order 193 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_176} set s "$o.HKWeight_176" "$s" order 194 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_177} set s "$o.HKWeight_177" "$s" order 195 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_178} set s "$o.HKWeight_178" "$s" order 196 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_179} set s "$o.HKWeight_179" "$s" order 197 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_180} set s "$o.HKWeight_180" "$s" order 198 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_181} set s "$o.HKWeight_181" "$s" order 199 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_182} set s "$o.HKWeight_182" "$s" order 200 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_183} set s "$o.HKWeight_183" "$s" order 201 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_184} set s "$o.HKWeight_184" "$s" order 202 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_185} set s "$o.HKWeight_185" "$s" order 203 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_186} set s "$o.HKWeight_186" "$s" order 204 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_187} set s "$o.HKWeight_187" "$s" order 205 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_188} set s "$o.HKWeight_188" "$s" order 206 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_189} set s "$o.HKWeight_189" "$s" order 207 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_190} set s "$o.HKWeight_190" "$s" order 208 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_191} set s "$o.HKWeight_191" "$s" order 209 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_192} set s "$o.HKWeight_192" "$s" order 210 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_193} set s "$o.HKWeight_193" "$s" order 211 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_194} set s "$o.HKWeight_194" "$s" order 212 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_195} set s "$o.HKWeight_195" "$s" order 213 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_196} set s "$o.HKWeight_196" "$s" order 214 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_197} set s "$o.HKWeight_197" "$s" order 215 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_198} set s "$o.HKWeight_198" "$s" order 216 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_199} set s "$o.HKWeight_199" "$s" order 217 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_200} set s "$o.HKWeight_200" "$s" order 218 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_201} set s "$o.HKWeight_201" "$s" order 219 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_202} set s "$o.HKWeight_202" "$s" order 220 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_203} set s "$o.HKWeight_203" "$s" order 221 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_204} set s "$o.HKWeight_204" "$s" order 222 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_205} set s "$o.HKWeight_205" "$s" order 223 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_206} set s "$o.HKWeight_206" "$s" order 224 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_207} set s "$o.HKWeight_207" "$s" order 225 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {HK Table} set s "$o.HK Table" "$s" order 226 "$s" resize 15 15 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setMaximums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setUnits 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} "$s" row 0 0.13408064711548187 0.13395538161658202 0.13081031304542942 0.11196677394232558 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 1 0.16877070472268621 0.1685935454728873 0.1640423228353019 0.14212000022062485 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 2 0.21357301597979531 0.21337040774537058 0.20273104187874388 0.17879557361089279 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$o" {TableSlot} {HK Table 3D} set s "$o.HK Table 3D" "$s" order 226 "$s" resize 225 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {HK} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 2 15 30 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 15.240000000000016 28.316846591999994 0.13408064711548187 "$s" row 1 15.240000000000016 3256.4373580799993 0.13395538161658202 "$s" row 2 15.240000000000016 4389.1112217599984 0.13081031304542942 "$s" row 3 15.240000000000016 5804.9535513599985 0.11196677394232558 "$s" row 4 18.897600000000018 28.316846591999994 0.16877070472268621 "$s" row 5 18.897600000000018 3256.4373580799993 0.1685935454728873 "$s" row 6 18.897600000000018 4389.1112217599984 0.1640423228353019 "$s" row 7 18.897600000000018 5804.9535513599985 0.14212000022062485 "$s" row 8 23.774400000000025 28.316846591999994 0.21357301597979531 "$s" row 9 23.774400000000025 3256.4373580799993 0.21337040774537058 "$s" row 10 23.774400000000025 4389.1112217599984 0.20273104187874388 "$s" row 11 23.774400000000025 5804.9535513599985 0.17879557361089279 "$s" row 12 NaN NaN NaN "$s" row 13 NaN NaN NaN "$s" row 14 NaN NaN NaN "$s" row 15 NaN NaN NaN "$s" row 16 NaN NaN NaN "$s" row 17 NaN NaN NaN "$s" row 18 NaN NaN NaN "$s" row 19 NaN NaN NaN "$s" row 20 NaN NaN NaN "$s" row 21 NaN NaN NaN "$s" row 22 NaN NaN NaN "$s" row 23 NaN NaN NaN "$s" row 24 NaN NaN NaN "$s" row 25 NaN NaN NaN "$s" row 26 NaN NaN NaN "$s" row 27 NaN NaN NaN "$s" row 28 NaN NaN NaN "$s" row 29 NaN NaN NaN "$s" row 30 NaN NaN NaN "$s" row 31 NaN NaN NaN "$s" row 32 NaN NaN NaN "$s" row 33 NaN NaN NaN "$s" row 34 NaN NaN NaN "$s" row 35 NaN NaN NaN "$s" row 36 NaN NaN NaN "$s" row 37 NaN NaN NaN "$s" row 38 NaN NaN NaN "$s" row 39 NaN NaN NaN "$s" row 40 NaN NaN NaN "$s" row 41 NaN NaN NaN "$s" row 42 NaN NaN NaN "$s" row 43 NaN NaN NaN "$s" row 44 NaN NaN NaN "$s" row 45 NaN NaN NaN "$s" row 46 NaN NaN NaN "$s" row 47 NaN NaN NaN "$s" row 48 NaN NaN NaN "$s" row 49 NaN NaN NaN "$s" row 50 NaN NaN NaN "$s" row 51 NaN NaN NaN "$s" row 52 NaN NaN NaN "$s" row 53 NaN NaN NaN "$s" row 54 NaN NaN NaN "$s" row 55 NaN NaN NaN "$s" row 56 NaN NaN NaN "$s" row 57 NaN NaN NaN "$s" row 58 NaN NaN NaN "$s" row 59 NaN NaN NaN "$s" row 60 NaN NaN NaN "$s" row 61 NaN NaN NaN "$s" row 62 NaN NaN NaN "$s" row 63 NaN NaN NaN "$s" row 64 NaN NaN NaN "$s" row 65 NaN NaN NaN "$s" row 66 NaN NaN NaN "$s" row 67 NaN NaN NaN "$s" row 68 NaN NaN NaN "$s" row 69 NaN NaN NaN "$s" row 70 NaN NaN NaN "$s" row 71 NaN NaN NaN "$s" row 72 NaN NaN NaN "$s" row 73 NaN NaN NaN "$s" row 74 NaN NaN NaN "$s" row 75 NaN NaN NaN "$s" row 76 NaN NaN NaN "$s" row 77 NaN NaN NaN "$s" row 78 NaN NaN NaN "$s" row 79 NaN NaN NaN "$s" row 80 NaN NaN NaN "$s" row 81 NaN NaN NaN "$s" row 82 NaN NaN NaN "$s" row 83 NaN NaN NaN "$s" row 84 NaN NaN NaN "$s" row 85 NaN NaN NaN "$s" row 86 NaN NaN NaN "$s" row 87 NaN NaN NaN "$s" row 88 NaN NaN NaN "$s" row 89 NaN NaN NaN "$s" row 90 NaN NaN NaN "$s" row 91 NaN NaN NaN "$s" row 92 NaN NaN NaN "$s" row 93 NaN NaN NaN "$s" row 94 NaN NaN NaN "$s" row 95 NaN NaN NaN "$s" row 96 NaN NaN NaN "$s" row 97 NaN NaN NaN "$s" row 98 NaN NaN NaN "$s" row 99 NaN NaN NaN "$s" row 100 NaN NaN NaN "$s" row 101 NaN NaN NaN "$s" row 102 NaN NaN NaN "$s" row 103 NaN NaN NaN "$s" row 104 NaN NaN NaN "$s" row 105 NaN NaN NaN "$s" row 106 NaN NaN NaN "$s" row 107 NaN NaN NaN "$s" row 108 NaN NaN NaN "$s" row 109 NaN NaN NaN "$s" row 110 NaN NaN NaN "$s" row 111 NaN NaN NaN "$s" row 112 NaN NaN NaN "$s" row 113 NaN NaN NaN "$s" row 114 NaN NaN NaN "$s" row 115 NaN NaN NaN "$s" row 116 NaN NaN NaN "$s" row 117 NaN NaN NaN "$s" row 118 NaN NaN NaN "$s" row 119 NaN NaN NaN "$s" row 120 NaN NaN NaN "$s" row 121 NaN NaN NaN "$s" row 122 NaN NaN NaN "$s" row 123 NaN NaN NaN "$s" row 124 NaN NaN NaN "$s" row 125 NaN NaN NaN "$s" row 126 NaN NaN NaN "$s" row 127 NaN NaN NaN "$s" row 128 NaN NaN NaN "$s" row 129 NaN NaN NaN "$s" row 130 NaN NaN NaN "$s" row 131 NaN NaN NaN "$s" row 132 NaN NaN NaN "$s" row 133 NaN NaN NaN "$s" row 134 NaN NaN NaN "$s" row 135 NaN NaN NaN "$s" row 136 NaN NaN NaN "$s" row 137 NaN NaN NaN "$s" row 138 NaN NaN NaN "$s" row 139 NaN NaN NaN "$s" row 140 NaN NaN NaN "$s" row 141 NaN NaN NaN "$s" row 142 NaN NaN NaN "$s" row 143 NaN NaN NaN "$s" row 144 NaN NaN NaN "$s" row 145 NaN NaN NaN "$s" row 146 NaN NaN NaN "$s" row 147 NaN NaN NaN "$s" row 148 NaN NaN NaN "$s" row 149 NaN NaN NaN "$s" row 150 NaN NaN NaN "$s" row 151 NaN NaN NaN "$s" row 152 NaN NaN NaN "$s" row 153 NaN NaN NaN "$s" row 154 NaN NaN NaN "$s" row 155 NaN NaN NaN "$s" row 156 NaN NaN NaN "$s" row 157 NaN NaN NaN "$s" row 158 NaN NaN NaN "$s" row 159 NaN NaN NaN "$s" row 160 NaN NaN NaN "$s" row 161 NaN NaN NaN "$s" row 162 NaN NaN NaN "$s" row 163 NaN NaN NaN "$s" row 164 NaN NaN NaN "$s" row 165 NaN NaN NaN "$s" row 166 NaN NaN NaN "$s" row 167 NaN NaN NaN "$s" row 168 NaN NaN NaN "$s" row 169 NaN NaN NaN "$s" row 170 NaN NaN NaN "$s" row 171 NaN NaN NaN "$s" row 172 NaN NaN NaN "$s" row 173 NaN NaN NaN "$s" row 174 NaN NaN NaN "$s" row 175 NaN NaN NaN "$s" row 176 NaN NaN NaN "$s" row 177 NaN NaN NaN "$s" row 178 NaN NaN NaN "$s" row 179 NaN NaN NaN "$s" row 180 NaN NaN NaN "$s" row 181 NaN NaN NaN "$s" row 182 NaN NaN NaN "$s" row 183 NaN NaN NaN "$s" row 184 NaN NaN NaN "$s" row 185 NaN NaN NaN "$s" row 186 NaN NaN NaN "$s" row 187 NaN NaN NaN "$s" row 188 NaN NaN NaN "$s" row 189 NaN NaN NaN "$s" row 190 NaN NaN NaN "$s" row 191 NaN NaN NaN "$s" row 192 NaN NaN NaN "$s" row 193 NaN NaN NaN "$s" row 194 NaN NaN NaN "$s" row 195 NaN NaN NaN "$s" row 196 NaN NaN NaN "$s" row 197 NaN NaN NaN "$s" row 198 NaN NaN NaN "$s" row 199 NaN NaN NaN "$s" row 200 NaN NaN NaN "$s" row 201 NaN NaN NaN "$s" row 202 NaN NaN NaN "$s" row 203 NaN NaN NaN "$s" row 204 NaN NaN NaN "$s" row 205 NaN NaN NaN "$s" row 206 NaN NaN NaN "$s" row 207 NaN NaN NaN "$s" row 208 NaN NaN NaN "$s" row 209 NaN NaN NaN "$s" row 210 NaN NaN NaN "$s" row 211 NaN NaN NaN "$s" row 212 NaN NaN NaN "$s" row 213 NaN NaN NaN "$s" row 214 NaN NaN NaN "$s" row 215 NaN NaN NaN "$s" row 216 NaN NaN NaN "$s" row 217 NaN NaN NaN "$s" row 218 NaN NaN NaN "$s" row 219 NaN NaN NaN "$s" row 220 NaN NaN NaN "$s" row 221 NaN NaN NaN "$s" row 222 NaN NaN NaN "$s" row 223 NaN NaN NaN "$s" row 224 NaN NaN 0 "$o" {ScalarSlot} {HK Count} set s "$o.HK Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 12 {NONE} "$o" {ScalarSlot} {HK Estimate Avg} set s "$o.HK Estimate Avg" "$s" order 18 "$s" units 30 {%f} 2 "$s" value 0.16284444481928551 {MW/cms} "$o" {SeriesSlot} {Spill Required} set s "$o.Spill Required" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Estimate Avg} set s "$o.Turbine Release Estimate Avg" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 3792.729131716847 {cms} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Max Available Storage} set s "$o.Max Available Storage" "$s" order 18 "$s" units 8 {%f} 2 "$s" value 120860831.95011088 {m3} "$o" {SeriesSlot} {Active Storage} set s "$o.Active Storage" "$s" order 19 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 120860831.95011087 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elev Ramp Limit Down} set s "$o.Pool Elev Ramp Limit Down" "$s" order 20 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {ScalarSlot} {Pool Elev Ramp Limit Up} set s "$o.Pool Elev Ramp Limit Up" "$s" order 21 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 22 "$s" userDescript {2016-09-29 DMI data loads these value from EAS Account
4910 - WEL_DESIRED_ELEVATION_FT} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 237.34776000000028 @ 131 237.74400000000026 @ 4 237.71352000000024 237.68304000000023 237.65256000000028 237.62208000000027 237.59160000000026 @ 7 237.34776000000028 @ 23 "$o" {SeriesSlot} {Draft Percent} set s "$o.Draft Percent" "$s" order 22 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume} set s "$o.Draft Volume" "$s" order 24 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 135540285.22340369 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Feet} set s "$o.Draft Feet" "$s" order 25 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax 0 3.3528000000000033 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Ramp Limit Down} set s "$o.Outflow Ramp Limit Down" "$s" order 27 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {ScalarSlot} {Outflow Ramp Limit Up} set s "$o.Outflow Ramp Limit Up" "$s" order 28 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spill Reduced Bound} set s "$o.Spill Reduced Bound" "$s" order 53 "$s" units 15 {%f} 2 "$s" value 1415.8423295999996 {cms} "$o" {SeriesSlot} {Content Available} set s "$o.Content Available" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {PeriodicSlot} {Summer Fish Spill Default Shape} set s "$o.Summer Fish Spill Default Shape" "$s" order 29 "$s" userDescript {This default spill shape was constructed by using the WEL default fish spill pecent (8%) and shaping it using the same shape as the RRH default, as recommended by Scott Buehn (email 04/04/2017).} "$s" resize 24 1 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 0.080000000000000002 "$s" row 1 0.080000000000000002 "$s" row 2 0.050000000000000003 "$s" row 3 0.050000000000000003 "$s" row 4 0.050000000000000003 "$s" row 5 0.050000000000000003 "$s" row 6 0.050000000000000003 "$s" row 7 0.050000000000000003 "$s" row 8 0.080000000000000002 "$s" row 9 0.080000000000000002 "$s" row 10 0.11 "$s" row 11 0.11 "$s" row 12 0.11 "$s" row 13 0.11 "$s" row 14 0.11 "$s" row 15 0.11 "$s" row 16 0.080000000000000002 "$s" row 17 0.080000000000000002 "$s" row 18 0.080000000000000002 "$s" row 19 0.080000000000000002 "$s" row 20 0.080000000000000002 "$s" row 21 0.080000000000000002 "$s" row 22 0.080000000000000002 "$s" row 23 0.080000000000000002 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Reg 1 DAY 1900 1 HOUR "$o" {SeriesSlot} {Fish Spill Default} set s "$o.Fish Spill Default" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Coefficient Approximation Default} set s "$o.Power Coefficient Approximation Default" "$s" order 20 "$s" computedByExpr 2 {"PowerCoeffApproxDefault"( % "Grand Coulee" )} "$s" units 31 {%f} 2 "$s" value 0.77449998403386888 {MW/cms} "$o" {SeriesSlot} {Outflow Initial} set s "$o.Outflow Initial" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Request} set s "$o.Request" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Hourly} set s "$o.Outflow Hourly" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily Discharge Estimate} set s "$o.Daily Discharge Estimate" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Initial Adjustment} set s "$o.Outflow Initial Adjustment" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Flow Fraction Elevation Parameter} set s "$o.Bias Flow Fraction Elevation Parameter" "$s" order 28 "$s" units 2 {%f} 2 "$s" value 0.53644800000000059 {m} "$o" {SeriesSlot} {Bias Flow Fraction} set s "$o.Bias Flow Fraction" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Storage Estimate} set s "$o.Storage Estimate" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Flow Nonfed Content Fracton Threshold} set s "$o.Bias Flow Nonfed Content Fracton Threshold" "$s" order 29 "$s" units 0 {%f} 2 "$s" value 0.90000000000000002 {NONE} "$o" SlotGroup {Special Operations Hard Constraints} set sg "$o.Special Operations Hard Constraints" "$sg" SlotGroup Order 67 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Spill} "$o" SlotGroup {Efficiency Objective} set sg "$o.Efficiency Objective" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Shifted Operating Head} "$sg" SlotGroup LocalSlot 1 {Shifted Turbine Release} "$sg" SlotGroup LocalSlot 2 {Efficiency} "$sg" SlotGroup LocalSlot 3 {Efficiency Estimate} "$sg" SlotGroup LocalSlot 4 {Max Efficiency Turbine Release} "$sg" SlotGroup LocalSlot 5 {Max Efficiency Operating Head} "$sg" SlotGroup LocalSlot 6 {cos Efficiency Theta} "$sg" SlotGroup LocalSlot 7 {sin Efficiency Theta} "$sg" SlotGroup LocalSlot 8 {Max Efficiency} "$o" SlotGroup {Pool Elev Margin} set sg "$o.Pool Elev Margin" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation Margin} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max Margin Default} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Max with Margin} "$sg" SlotGroup LocalSlot 3 {Pool Elevation Min Margin Default} "$sg" SlotGroup LocalSlot 4 {Pool Elevation Min with Margin} "$sg" SlotGroup LocalSlot 5 {Elevation Max Controlling} "$sg" SlotGroup LocalSlot 6 {Elevation Min Controlling} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Min Margin} "$sg" SlotGroup LocalSlot 8 {Pool Elevation Max Margin} "$o" SlotGroup {Special Operations Soft Constraints} set sg "$o.Special Operations Soft Constraints" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Soft Max Spill} "$o" SlotGroup {Spill Slots} set sg "$o.Spill Slots" "$sg" SlotGroup Order 310 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Summer Fish Spill Season Default} "$sg" SlotGroup LocalSlot 1 {Summer Fish Spill Percent Default} "$sg" SlotGroup LocalSlot 2 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 3 {Spill Reduced Bound} "$sg" SlotGroup LocalSlot 4 {Spill As Energy} "$sg" SlotGroup LocalSlot 5 {Summer Fish Spill Manual} "$sg" SlotGroup LocalSlot 6 {Summer Fish Spill Percent Manual} "$sg" SlotGroup LocalSlot 7 {Summer Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 8 {Summer Fish Spill Default Shape} "$sg" SlotGroup LocalSlot 9 {Fish Spill Default} "$sg" SlotGroup LocalSlot 10 {Spill Required} "$o" SlotGroup {HK Weights} set sg "$o.HK Weights" "$sg" SlotGroup Order 42 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HKWeight_0} "$sg" SlotGroup LocalSlot 1 {HKWeight_1} "$sg" SlotGroup LocalSlot 2 {HKWeight_10} "$sg" SlotGroup LocalSlot 3 {HKWeight_11} "$sg" SlotGroup LocalSlot 4 {HKWeight_12} "$sg" SlotGroup LocalSlot 5 {HKWeight_13} "$sg" SlotGroup LocalSlot 6 {HKWeight_14} "$sg" SlotGroup LocalSlot 7 {HKWeight_15} "$sg" SlotGroup LocalSlot 8 {HKWeight_16} "$sg" SlotGroup LocalSlot 9 {HKWeight_17} "$sg" SlotGroup LocalSlot 10 {HKWeight_18} "$sg" SlotGroup LocalSlot 11 {HKWeight_19} "$sg" SlotGroup LocalSlot 12 {HKWeight_2} "$sg" SlotGroup LocalSlot 13 {HKWeight_20} "$sg" SlotGroup LocalSlot 14 {HKWeight_21} "$sg" SlotGroup LocalSlot 15 {HKWeight_22} "$sg" SlotGroup LocalSlot 16 {HKWeight_23} "$sg" SlotGroup LocalSlot 17 {HKWeight_24} "$sg" SlotGroup LocalSlot 18 {HKWeight_25} "$sg" SlotGroup LocalSlot 19 {HKWeight_3} "$sg" SlotGroup LocalSlot 20 {HKWeight_4} "$sg" SlotGroup LocalSlot 21 {HKWeight_5} "$sg" SlotGroup LocalSlot 22 {HKWeight_6} "$sg" SlotGroup LocalSlot 23 {HKWeight_7} "$sg" SlotGroup LocalSlot 24 {HKWeight_8} "$sg" SlotGroup LocalSlot 25 {HKWeight_9} "$sg" SlotGroup LocalSlot 26 {HKWeight_26} "$sg" SlotGroup LocalSlot 27 {HKWeight_27} "$sg" SlotGroup LocalSlot 28 {HKWeight_28} "$sg" SlotGroup LocalSlot 29 {HKWeight_29} "$sg" SlotGroup LocalSlot 30 {HKWeight_30} "$sg" SlotGroup LocalSlot 31 {HKWeight_31} "$sg" SlotGroup LocalSlot 32 {HKWeight_32} "$sg" SlotGroup LocalSlot 33 {HKWeight_33} "$sg" SlotGroup LocalSlot 34 {HKWeight_34} "$sg" SlotGroup LocalSlot 35 {HKWeight_35} "$sg" SlotGroup LocalSlot 36 {HKWeight_36} "$sg" SlotGroup LocalSlot 37 {HKWeight_37} "$sg" SlotGroup LocalSlot 38 {HKWeight_40} "$sg" SlotGroup LocalSlot 39 {HKWeight_41} "$sg" SlotGroup LocalSlot 40 {HKWeight_42} "$sg" SlotGroup LocalSlot 41 {HKWeight_43} "$sg" SlotGroup LocalSlot 42 {HKWeight_44} "$sg" SlotGroup LocalSlot 43 {HKWeight_45} "$sg" SlotGroup LocalSlot 44 {HKWeight_46} "$sg" SlotGroup LocalSlot 45 {HKWeight_47} "$sg" SlotGroup LocalSlot 46 {HKWeight_48} "$sg" SlotGroup LocalSlot 47 {HKWeight_49} "$sg" SlotGroup LocalSlot 48 {HKWeight_50} "$sg" SlotGroup LocalSlot 49 {HKWeight_51} "$sg" SlotGroup LocalSlot 50 {HKWeight_52} "$sg" SlotGroup LocalSlot 51 {HKWeight_54} "$sg" SlotGroup LocalSlot 52 {HKWeight_55} "$sg" SlotGroup LocalSlot 53 {HKWeight_56} "$sg" SlotGroup LocalSlot 54 {HKWeight_57} "$sg" SlotGroup LocalSlot 55 {HKWeight_58} "$sg" SlotGroup LocalSlot 56 {HKWeight_59} "$sg" SlotGroup LocalSlot 57 {HKWeight_60} "$sg" SlotGroup LocalSlot 58 {HKWeight_61} "$sg" SlotGroup LocalSlot 59 {HKWeight_62} "$sg" SlotGroup LocalSlot 60 {HKWeight_63} "$sg" SlotGroup LocalSlot 61 {HKWeight_64} "$sg" SlotGroup LocalSlot 62 {HKWeight_65} "$sg" SlotGroup LocalSlot 63 {HKWeight_66} "$sg" SlotGroup LocalSlot 64 {HKWeight_67} "$sg" SlotGroup LocalSlot 65 {HKWeight_68} "$sg" SlotGroup LocalSlot 66 {HKWeight_69} "$sg" SlotGroup LocalSlot 67 {HKWeight_70} "$sg" SlotGroup LocalSlot 68 {HKWeight_71} "$sg" SlotGroup LocalSlot 69 {HKWeight_72} "$sg" SlotGroup LocalSlot 70 {HKWeight_73} "$sg" SlotGroup LocalSlot 71 {HKWeight_74} "$sg" SlotGroup LocalSlot 72 {HKWeight_75} "$sg" SlotGroup LocalSlot 73 {HKWeight_100} "$sg" SlotGroup LocalSlot 74 {HKWeight_76} "$sg" SlotGroup LocalSlot 75 {HKWeight_77} "$sg" SlotGroup LocalSlot 76 {HKWeight_78} "$sg" SlotGroup LocalSlot 77 {HKWeight_79} "$sg" SlotGroup LocalSlot 78 {HKWeight_80} "$sg" SlotGroup LocalSlot 79 {HKWeight_81} "$sg" SlotGroup LocalSlot 80 {HKWeight_82} "$sg" SlotGroup LocalSlot 81 {HKWeight_83} "$sg" SlotGroup LocalSlot 82 {HKWeight_84} "$sg" SlotGroup LocalSlot 83 {HKWeight_85} "$sg" SlotGroup LocalSlot 84 {HKWeight_86} "$sg" SlotGroup LocalSlot 85 {HKWeight_87} "$sg" SlotGroup LocalSlot 86 {HKWeight_88} "$sg" SlotGroup LocalSlot 87 {HKWeight_89} "$sg" SlotGroup LocalSlot 88 {HKWeight_90} "$sg" SlotGroup LocalSlot 89 {HKWeight_91} "$sg" SlotGroup LocalSlot 90 {HKWeight_92} "$sg" SlotGroup LocalSlot 91 {HKWeight_93} "$sg" SlotGroup LocalSlot 92 {HKWeight_94} "$sg" SlotGroup LocalSlot 93 {HKWeight_95} "$sg" SlotGroup LocalSlot 94 {HKWeight_96} "$sg" SlotGroup LocalSlot 95 {HKWeight_97} "$sg" SlotGroup LocalSlot 96 {HKWeight_98} "$sg" SlotGroup LocalSlot 97 {HKWeight_99} "$sg" SlotGroup LocalSlot 98 {HKWeight_101} "$sg" SlotGroup LocalSlot 99 {HKWeight_102} "$sg" SlotGroup LocalSlot 100 {HKWeight_103} "$sg" SlotGroup LocalSlot 101 {HKWeight_104} "$sg" SlotGroup LocalSlot 102 {HKWeight_105} "$sg" SlotGroup LocalSlot 103 {HKWeight_106} "$sg" SlotGroup LocalSlot 104 {HKWeight_107} "$sg" SlotGroup LocalSlot 105 {HKWeight_108} "$sg" SlotGroup LocalSlot 106 {HKWeight_109} "$sg" SlotGroup LocalSlot 107 {HKWeight_110} "$sg" SlotGroup LocalSlot 108 {HKWeight_111} "$sg" SlotGroup LocalSlot 109 {HKWeight_112} "$sg" SlotGroup LocalSlot 110 {HKWeight_113} "$sg" SlotGroup LocalSlot 111 {HKWeight_114} "$sg" SlotGroup LocalSlot 112 {HKWeight_115} "$sg" SlotGroup LocalSlot 113 {HKWeight_116} "$sg" SlotGroup LocalSlot 114 {HKWeight_117} "$sg" SlotGroup LocalSlot 115 {HKWeight_118} "$sg" SlotGroup LocalSlot 116 {HKWeight_119} "$sg" SlotGroup LocalSlot 117 {HKWeight_120} "$sg" SlotGroup LocalSlot 118 {HKWeight_121} "$sg" SlotGroup LocalSlot 119 {HKWeight_122} "$sg" SlotGroup LocalSlot 120 {HKWeight_123} "$sg" SlotGroup LocalSlot 121 {HKWeight_124} "$sg" SlotGroup LocalSlot 122 {HKWeight_125} "$sg" SlotGroup LocalSlot 123 {HKWeight_126} "$sg" SlotGroup LocalSlot 124 {HKWeight_127} "$sg" SlotGroup LocalSlot 125 {HKWeight_128} "$sg" SlotGroup LocalSlot 126 {HKWeight_129} "$sg" SlotGroup LocalSlot 127 {HKWeight_130} "$sg" SlotGroup LocalSlot 128 {HKWeight_131} "$sg" SlotGroup LocalSlot 129 {HKWeight_132} "$sg" SlotGroup LocalSlot 130 {HKWeight_133} "$sg" SlotGroup LocalSlot 131 {HKWeight_134} "$sg" SlotGroup LocalSlot 132 {HKWeight_135} "$sg" SlotGroup LocalSlot 133 {HKWeight_136} "$sg" SlotGroup LocalSlot 134 {HKWeight_137} "$sg" SlotGroup LocalSlot 135 {HKWeight_138} "$sg" SlotGroup LocalSlot 136 {HKWeight_139} "$sg" SlotGroup LocalSlot 137 {HKWeight_140} "$sg" SlotGroup LocalSlot 138 {HKWeight_141} "$sg" SlotGroup LocalSlot 139 {HKWeight_142} "$sg" SlotGroup LocalSlot 140 {HKWeight_143} "$sg" SlotGroup LocalSlot 141 {HKWeight_144} "$sg" SlotGroup LocalSlot 142 {HKWeight_145} "$sg" SlotGroup LocalSlot 143 {HKWeight_146} "$sg" SlotGroup LocalSlot 144 {HKWeight_147} "$sg" SlotGroup LocalSlot 145 {HKWeight_148} "$sg" SlotGroup LocalSlot 146 {HKWeight_149} "$sg" SlotGroup LocalSlot 147 {HKWeight_150} "$sg" SlotGroup LocalSlot 148 {HKWeight_151} "$sg" SlotGroup LocalSlot 149 {HKWeight_152} "$sg" SlotGroup LocalSlot 150 {HKWeight_153} "$sg" SlotGroup LocalSlot 151 {HKWeight_154} "$sg" SlotGroup LocalSlot 152 {HKWeight_155} "$sg" SlotGroup LocalSlot 153 {HKWeight_156} "$sg" SlotGroup LocalSlot 154 {HKWeight_157} "$sg" SlotGroup LocalSlot 155 {HKWeight_158} "$sg" SlotGroup LocalSlot 156 {HKWeight_159} "$sg" SlotGroup LocalSlot 157 {HKWeight_160} "$sg" SlotGroup LocalSlot 158 {HKWeight_161} "$sg" SlotGroup LocalSlot 159 {HKWeight_162} "$sg" SlotGroup LocalSlot 160 {HKWeight_163} "$sg" SlotGroup LocalSlot 161 {HKWeight_164} "$sg" SlotGroup LocalSlot 162 {HKWeight_165} "$sg" SlotGroup LocalSlot 163 {HKWeight_166} "$sg" SlotGroup LocalSlot 164 {HKWeight_167} "$sg" SlotGroup LocalSlot 165 {HKWeight_168} "$sg" SlotGroup LocalSlot 166 {HKWeight_169} "$sg" SlotGroup LocalSlot 167 {HKWeight_170} "$sg" SlotGroup LocalSlot 168 {HKWeight_171} "$sg" SlotGroup LocalSlot 169 {HKWeight_172} "$sg" SlotGroup LocalSlot 170 {HKWeight_173} "$sg" SlotGroup LocalSlot 171 {HKWeight_174} "$sg" SlotGroup LocalSlot 172 {HKWeight_175} "$sg" SlotGroup LocalSlot 173 {HKWeight_176} "$sg" SlotGroup LocalSlot 174 {HKWeight_177} "$sg" SlotGroup LocalSlot 175 {HKWeight_178} "$sg" SlotGroup LocalSlot 176 {HKWeight_179} "$sg" SlotGroup LocalSlot 177 {HKWeight_180} "$sg" SlotGroup LocalSlot 178 {HKWeight_181} "$sg" SlotGroup LocalSlot 179 {HKWeight_182} "$sg" SlotGroup LocalSlot 180 {HKWeight_183} "$sg" SlotGroup LocalSlot 181 {HKWeight_184} "$sg" SlotGroup LocalSlot 182 {HKWeight_185} "$sg" SlotGroup LocalSlot 183 {HKWeight_186} "$sg" SlotGroup LocalSlot 184 {HKWeight_187} "$sg" SlotGroup LocalSlot 185 {HKWeight_188} "$sg" SlotGroup LocalSlot 186 {HKWeight_189} "$sg" SlotGroup LocalSlot 187 {HKWeight_190} "$sg" SlotGroup LocalSlot 188 {HKWeight_191} "$sg" SlotGroup LocalSlot 189 {HKWeight_192} "$sg" SlotGroup LocalSlot 190 {HKWeight_193} "$sg" SlotGroup LocalSlot 191 {HKWeight_194} "$sg" SlotGroup LocalSlot 192 {HKWeight_195} "$sg" SlotGroup LocalSlot 193 {HKWeight_196} "$sg" SlotGroup LocalSlot 194 {HKWeight_197} "$sg" SlotGroup LocalSlot 195 {HKWeight_198} "$sg" SlotGroup LocalSlot 196 {HKWeight_199} "$sg" SlotGroup LocalSlot 197 {HKWeight_200} "$sg" SlotGroup LocalSlot 198 {HKWeight_201} "$sg" SlotGroup LocalSlot 199 {HKWeight_202} "$sg" SlotGroup LocalSlot 200 {HKWeight_203} "$sg" SlotGroup LocalSlot 201 {HKWeight_204} "$sg" SlotGroup LocalSlot 202 {HKWeight_205} "$sg" SlotGroup LocalSlot 203 {HKWeight_206} "$sg" SlotGroup LocalSlot 204 {HKWeight_207} "$sg" SlotGroup LocalSlot 205 {HKWeight_208} "$sg" SlotGroup LocalSlot 206 {HKWeight_209} "$sg" SlotGroup LocalSlot 207 {HKWeight_210} "$sg" SlotGroup LocalSlot 208 {HKWeight_211} "$sg" SlotGroup LocalSlot 209 {HKWeight_212} "$sg" SlotGroup LocalSlot 210 {HKWeight_213} "$sg" SlotGroup LocalSlot 211 {HKWeight_214} "$sg" SlotGroup LocalSlot 212 {HKWeight_215} "$sg" SlotGroup LocalSlot 213 {HKWeight_216} "$sg" SlotGroup LocalSlot 214 {HKWeight_217} "$sg" SlotGroup LocalSlot 215 {HKWeight_218} "$sg" SlotGroup LocalSlot 216 {HKWeight_219} "$sg" SlotGroup LocalSlot 217 {HKWeight_220} "$sg" SlotGroup LocalSlot 218 {HKWeight_221} "$sg" SlotGroup LocalSlot 219 {HKWeight_222} "$sg" SlotGroup LocalSlot 220 {HKWeight_223} "$sg" SlotGroup LocalSlot 221 {HKWeight_224} "$sg" SlotGroup LocalSlot 222 {HKWeight_225} "$sg" SlotGroup LocalSlot 223 {HKWeight_38} "$sg" SlotGroup LocalSlot 224 {HKWeight_39} "$sg" SlotGroup LocalSlot 225 {HKWeight_53} "$o" SlotGroup {HK Objective} set sg "$o.HK Objective" "$sg" SlotGroup Order 24 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HK} "$sg" SlotGroup LocalSlot 1 {HK Operating Head Count} "$sg" SlotGroup LocalSlot 2 {HK Table Operating Head} "$sg" SlotGroup LocalSlot 3 {HK Table Turbine Release} "$sg" SlotGroup LocalSlot 4 {HK Turbine Release Count} "$sg" SlotGroup LocalSlot 5 {HK Table} "$sg" SlotGroup LocalSlot 6 {HK Count} "$sg" SlotGroup LocalSlot 7 {HK Table 3D} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Energy In Storage Baseline} "$sg" SlotGroup LocalSlot 8 {Tailwater Elevation Baseline} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$sg" SlotGroup LocalSlot 3 {Power Coefficient Approximation Default} "$o" SlotGroup {Outflow Initial and Request Slots} set sg "$o.Outflow Initial and Request Slots" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow Initial} "$sg" SlotGroup LocalSlot 1 {Request} "$sg" SlotGroup LocalSlot 2 {Outflow Hourly} "$sg" SlotGroup LocalSlot 3 {Daily Discharge Estimate} "$sg" SlotGroup LocalSlot 4 {Outflow Initial Adjustment} "$o" SlotGroup {Bias Flow Slots} set sg "$o.Bias Flow Slots" "$sg" SlotGroup Order 28 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Bias Flow Fraction Elevation Parameter} "$sg" SlotGroup LocalSlot 1 {Bias Flow Fraction} "$sg" SlotGroup LocalSlot 2 {Bias Flow Nonfed Content Fracton Threshold} "$o" SlotGroup {Estimates} set sg "$o.Estimates" "$sg" SlotGroup Order 41 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HK Estimate} "$sg" SlotGroup LocalSlot 1 {HK Estimate Avg} "$sg" SlotGroup LocalSlot 2 {Inflow Estimate} "$sg" SlotGroup LocalSlot 3 {Operating Head Estimate} "$sg" SlotGroup LocalSlot 4 {Operating Head Estimate Avg} "$sg" SlotGroup LocalSlot 5 {Outflow Estimate} "$sg" SlotGroup LocalSlot 6 {Outflow Estimate Avg} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Estimate} "$sg" SlotGroup LocalSlot 8 {Pool Elevation Estimate Avg} "$sg" SlotGroup LocalSlot 9 {Tailwater Estimate} "$sg" SlotGroup LocalSlot 10 {Tailwater Estimate Avg} "$sg" SlotGroup LocalSlot 11 {Turbine Release Estimate} "$sg" SlotGroup LocalSlot 12 {Turbine Release Estimate Avg} "$sg" SlotGroup LocalSlot 13 {Storage Estimate} "$o" hideSlots 24 hideOn hideEmptyOff "$o" hids {CJAD Draft Max} "$o" hids {CJAD II Draft Max} "$o" hids {CJAD II Required Draft Volume} "$o" hids {CJAD Required Draft Volume} "$o" hids {Desired Operating Elevation} "$o" hids {Goose Nesting Pool Elevation} "$o" hids {Goose Nesting Season Default} "$o" hids {Goose Nesting Season Operations} "$o" hids {Minimum Generation Default} "$o" hids {Minimum Generation Manual} "$o" hids {Pateros Elevation Coeff} "$o" hids {Pateros Elevation Intercept} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Summer Fish Spill Manual} "$o" hids {Summer Fish Spill Percent Default} "$o" hids {Summer Fish Spill Percent Manual} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Allowable Curvature Scalar} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {Rock Island} set o "$ws.Rock Island" $ws SimObj $obj {LevelPowerReservoir} 223 1050 {} 704 1351 406 542 "$o" geospatialCoords 0 0 406 542 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5032 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated and Bypass} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {EIS Table Lookup} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated and Bypass} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {Plant Efficiency Curve Release} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Stage Flow Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Stage Flow Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 5541.6068780543983 5467.9830769151986 5567.0920399871984 5612.3989945343983 5827.6070286335989 5677.5277416959989 5499.1316081663981 5649.2108951039982 5436.8345456639981 5606.7356252159989 5499.1316081663981 5504.7949774847984 5487.8048695295993 5082.873963263999 5385.8642217983979 5586.9138326015991 5487.8048695295993 5569.9237246463981 5595.4088865791982 5414.1810683903987 5085.7056479231987 4912.9728837119983 4932.7946763263981 5249.9433581567991 5196.1413496319983 5164.9928183807988 5465.1513922559989 5501.9632928255987 5380.2008524799985 5473.6464462335989 5499.1316081663981 5456.6563382783979 5558.5969860095993 5371.7057985023985 5238.6166195199985 5014.9135314431987 4989.4283695103986 4629.8044177919992 4910.1411990527986 5484.9731848703987 5533.1118240767983 5470.8147615743983 5530.2801394175985 5640.7158411263981 5768.1416507903978 5824.7753439743983 5796.4584973823985 5830.4387132927986 5561.428670668799 5802.1218667007988 5575.5870939647984 5569.9237246463981 5720.0030115839982 5700.1812189695984 5745.4881735167983 5793.6268127231979 5671.8643723775986 5541.6068780543983 5459.4880229375985 5487.8048695295993 5499.1316081663981 5456.6563382783979 5467.9830769151986 5535.9435087359989 5462.3197075967992 5439.6662303231988 5476.4781308927986 5535.9435087359989 5473.6464462335989 5575.5870939647984 5567.0920399871984 5521.7850854399985 5640.7158411263981 5462.3197075967992 5581.2504632831988 5558.5969860095993 5552.933616691198 @ 2 5493.4682388479987 5507.6266621439981 5535.9435087359989 5541.6068780543983 5564.2603553279987 5530.2801394175985 5892.7357757951986 5759.6465968127986 5606.7356252159989 5575.5870939647984 5533.1118240767983 5334.8938979327986 5504.7949774847984 5493.4682388479987 5479.3098155519983 5510.4583468031988 5490.636554188799 5507.6266621439981 5483.3477978760175 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 75257683.187558502 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 185.63844000000017 186.82716000000022 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 186.77763000000022 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 18 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 6456.241022975998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 34 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 13 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 19 "$s" userDescript {Added 614.0 value = 772.8 by linearly extrapolation using 609 to 613 values. Excel trend line showed R squared = 1, with equation y=35.34x-20926. So 609 to 613 is linear, feel confident with the 614.0 at 772.7 value. sjb on 10-2-2015} "$s" resize 7 2 "$s" setRowLabels {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 180.44160000000019 0 "$s" row 1 185.6232000000002 60827984.501207128 "$s" row 2 185.9280000000002 64406101.236572243 "$s" row 3 186.2328000000002 67984217.971937373 "$s" row 4 186.5376000000002 71562334.707302496 "$s" row 5 186.8424000000002 75262780.219945058 "$s" row 6 187.1472000000002 78779732.566671461 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 915 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 6.720840000000007 24.079200000000025 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 164.60724000000016 177.37531200000021 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 -204.44763239423995 -203.03179006463995 -202.38050259302395 @ 95 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1166.6540795903998 1254.4363040255996 1220.4560881151997 1231.7828267519997 1228.9511420927997 @ 2 1217.6244034559998 1005.2480540159997 @ 2 1008.0797386751998 @ 2 1042.0599545855996 1381.8621136895995 1274.2580966399996 1265.7630426623998 1285.5848352767996 1152.4956562943999 1042.0599545855996 1313.9016818687996 1322.3967358463997 1362.0403210751997 1251.6046193663997 1243.1095653887996 1061.8817471999996 1656.3259809672188 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 55 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 180.44160000000019 11355.055483391998 "$s" row 1 186.8424000000002 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 53 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bypass} set s "$o.Bypass" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5.6633693183999991 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Table} set s "$o.Bypass Table" "$s" order 11 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Bypass Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 180.44160000000019 28.316846591999994 "$s" row 1 186.8424000000002 28.316846591999994 "$o" {SeriesSlot} {Bypass Drift Index} set s "$o.Bypass Drift Index" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Index Table} set s "$o.Bypass Index Table" "$s" order 10 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Bypass Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Bypass Capacity Fraction} set s "$o.Bypass Capacity Fraction" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 623 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 23 "$s" resize 6 2 "$s" setRowLabels {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 180.44160000000019 0 "$s" row 1 185.6232000000002 0 "$s" row 2 185.9280000000002 147 "$s" row 3 186.2328000000002 298 "$s" row 4 186.5376000000002 456 "$s" row 5 186.8424000000002 623 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 40 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16)

CADSWES added rows for 0 flow and 0 power (required by RiverWare). CADSWES removed the low flow rows at each operating head to make the curves concave (required by RiverWare). Power was also reduced at the high flow points to make the curves concave by extrapolating the segment from the previous two points} "$s" resize 78 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 6.7056000000000067 0 0 "$s" row 1 6.7056000000000067 2548.5161932799992 140.22999999999999 "$s" row 2 6.7056000000000067 3681.1900569599989 190.31999999999999 "$s" row 3 6.7056000000000067 5748.3198581759989 280.47000000000003 "$s" row 4 7.3152000000000079 0 0 "$s" row 5 7.3152000000000079 2548.5161932799992 155.25999999999999 "$s" row 6 7.3152000000000079 3681.1900569599989 210.34999999999999 "$s" row 7 7.3152000000000079 5946.5377843199985 320.52999999999997 "$s" row 8 7.9248000000000083 0 0 "$s" row 9 7.9248000000000083 2429.8686060595196 158.81999999999999 "$s" row 10 7.9248000000000083 3010.930298127359 196.33000000000001 "$s" row 11 7.9248000000000083 6080.7596371660784 351.79000000000002 "$s" row 12 8.5344000000000086 0 0 "$s" row 13 8.5344000000000086 2462.432979640319 176.16999999999999 "$s" row 14 8.5344000000000086 3662.2177697433594 253.62 "$s" row 15 8.5344000000000086 6243.2983366041581 398.06 "$s" row 16 9.144000000000009 0 0 "$s" row 17 9.144000000000009 2296.4962586111992 176.18000000000001 "$s" row 18 9.144000000000009 3237.181902397439 239.05000000000001 "$s" row 19 9.144000000000009 6342.4072996761579 430.06999999999999 "$s" row 20 9.7536000000000111 0 0 "$s" row 21 9.7536000000000111 2363.0408481023997 193.80000000000001 "$s" row 22 9.7536000000000111 3488.0691632025591 281.47000000000003 "$s" row 23 9.7536000000000111 6376.3875155865589 466.93000000000001 "$s" row 24 10.363200000000012 0 0 "$s" row 25 10.363200000000012 2395.8883901491195 209.47999999999999 "$s" row 26 10.363200000000012 3563.9583120691191 301.06999999999999 "$s" row 27 10.363200000000012 6393.6607920076785 502.58999999999997 "$s" row 28 10.972800000000012 0 0 "$s" row 29 10.972800000000012 2436.0983123097594 227.13999999999999 "$s" row 30 10.972800000000012 3859.8693589555191 346.35000000000002 "$s" row 31 10.972800000000012 6425.6588286566375 536.63999999999999 "$s" row 32 11.582400000000012 0 0 "$s" row 33 11.582400000000012 2644.7934716927994 260.43000000000001 "$s" row 34 11.582400000000012 4040.2476717465593 385.75999999999999 "$s" row 35 11.582400000000012 6471.8152886015987 570.40999999999997 "$s" row 36 12.192000000000013 0 0 "$s" row 37 12.192000000000013 2375.2170921369593 246.72999999999999 "$s" row 38 12.192000000000013 3832.9683546931192 384.76999999999998 "$s" row 39 12.192000000000013 6461.9043922943983 603.37 "$s" row 40 12.801600000000013 0 0 "$s" row 41 12.801600000000013 2408.914139581439 264.39999999999998 "$s" row 42 12.801600000000013 3869.780255262719 410.39999999999998 "$s" row 43 12.801600000000013 6432.4548718387186 630.64999999999998 "$s" row 44 13.411200000000013 0 0 "$s" row 45 13.411200000000013 2310.9378503731195 264.75 "$s" row 46 13.411200000000013 3749.7168257126386 414.76999999999998 "$s" row 47 13.411200000000013 6382.3340533708779 655.54999999999995 "$s" row 48 14.020800000000015 0 0 "$s" row 49 14.020800000000015 2332.7418222489591 282.06 "$s" row 50 14.020800000000015 3745.752467189759 438.00999999999999 "$s" row 51 14.020800000000015 6144.7557104639982 659.83000000000004 "$s" row 52 14.630400000000016 0 0 "$s" row 53 14.630400000000016 2493.0151739596795 315.38 "$s" row 54 14.630400000000016 3810.3148774195192 468.57999999999998 "$s" row 55 14.630400000000016 6144.7557104639982 703.82000000000005 "$s" row 56 15.240000000000016 0 0 "$s" row 57 15.240000000000016 2390.7913577625595 317.38999999999999 "$s" row 58 15.240000000000016 3521.7662106470393 456.87 "$s" row 59 15.240000000000016 6144.7557104639982 733.14999999999998 "$s" row 60 15.849600000000017 0 0 "$s" row 61 15.849600000000017 2444.0270293555195 338.97000000000003 "$s" row 62 15.849600000000017 3536.2078024089587 479.56 "$s" row 63 15.849600000000017 6144.7557104639982 762.47000000000003 "$s" row 64 16.459200000000017 0 0 "$s" row 65 16.459200000000017 2564.0904589055995 370.33999999999997 "$s" row 66 16.459200000000017 3462.0176643379191 492.44 "$s" row 67 16.459200000000017 6144.7557104639982 791.79999999999995 "$s" row 68 19.507200000000022 0 0 "$s" row 69 19.507200000000022 2307.5398287820794 331.93000000000001 "$s" row 70 19.507200000000022 3115.7026305177592 441.80000000000001 "$s" row 71 19.507200000000022 6144.7557104639982 853.50999999999999 "$s" row 72 21.336000000000023 0 0 "$s" row 73 21.336000000000023 3060.4847796633589 444.81 "$s" row 74 21.336000000000023 6144.7557104639982 893.00999999999999 "$s" row 75 24.384000000000025 0 0 "$s" row 76 24.384000000000025 2963.9243327846393 434.43000000000001 "$s" row 77 24.384000000000025 6144.7557104639982 900.57000000000005 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 717.95000000000005 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 36 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 180.44160000000019 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 45 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 164.60724000000016 174.33036000000018 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 73 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 174.0323265600002 NaN @ 72 "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 62 "$s" userDescript {Data for downstream stages greater than or equal to 561 ft provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16). This matches the data in the model prior to 4/28/16

The rows for lower downstream stages match the data in the model priori to 4/28/16. These rows were added when Wanapum was operating at low elevations to repair a crack in the dam.} "$s" resize 132 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 18 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 0 164.59200000000018 164.59200000000018 "$s" row 1 0 165.65880000000018 165.65880000000018 "$s" row 2 0 166.11600000000018 166.11600000000018 "$s" row 3 0 167.64000000000019 167.64000000000019 "$s" row 4 0 170.99280000000019 170.99280000000019 "$s" row 5 0 171.60240000000019 171.60240000000019 "$s" row 6 0 172.21200000000019 172.21200000000019 "$s" row 7 0 172.82160000000019 172.82160000000019 "$s" row 8 0 173.43120000000019 173.43120000000019 "$s" row 9 0 174.04080000000019 174.04080000000019 "$s" row 10 0 174.34560000000019 174.34560000000019 "$s" row 11 707.92116479999981 164.59200000000018 165.78072000000017 "$s" row 12 707.92116479999981 165.65880000000018 165.81120000000018 "$s" row 13 707.92116479999981 166.11600000000018 166.23792000000017 "$s" row 14 707.92116479999981 167.64000000000019 167.70096000000018 "$s" row 15 707.92116479999981 170.99280000000019 171.14520000000019 "$s" row 16 707.92116479999981 171.60240000000019 171.72222450000021 "$s" row 17 707.92116479999981 172.21200000000019 172.3124316000002 "$s" row 18 707.92116479999981 172.82160000000019 172.89341850000019 "$s" row 19 707.92116479999981 173.43120000000019 173.4885405000002 "$s" row 20 707.92116479999981 174.04080000000019 174.07817610000018 "$s" row 21 707.92116479999981 174.34560000000019 174.42267630000018 "$s" row 22 1415.8423295999996 164.59200000000018 166.08552000000017 "$s" row 23 1415.8423295999996 165.65880000000018 166.11600000000018 "$s" row 24 1415.8423295999996 166.11600000000018 166.48176000000018 "$s" row 25 1415.8423295999996 167.64000000000019 167.85336000000018 "$s" row 26 1415.8423295999996 170.99280000000019 171.45000000000019 "$s" row 27 1415.8423295999996 171.60240000000019 171.92625000000018 "$s" row 28 1415.8423295999996 172.21200000000019 172.48068120000016 "$s" row 29 1415.8423295999996 172.82160000000019 173.02734000000018 "$s" row 30 1415.8423295999996 173.43120000000019 173.59731600000018 "$s" row 31 1415.8423295999996 174.04080000000019 174.1624152000002 "$s" row 32 1415.8423295999996 174.34560000000019 174.5316804000002 "$s" row 33 2123.7634943999992 164.59200000000018 166.40556000000018 "$s" row 34 2123.7634943999992 165.65880000000018 166.43604000000016 "$s" row 35 2123.7634943999992 166.11600000000018 166.77132000000017 "$s" row 36 2123.7634943999992 167.64000000000019 168.08196000000018 "$s" row 37 2123.7634943999992 170.99280000000019 171.77004000000017 "$s" row 38 2123.7634943999992 171.60240000000019 172.21447650000016 "$s" row 39 2123.7634943999992 172.21200000000019 172.71674880000018 "$s" row 40 2123.7634943999992 172.82160000000019 173.22336450000017 "$s" row 41 2123.7634943999992 173.43120000000019 173.75752650000018 "$s" row 42 2123.7634943999992 174.04080000000019 174.29351730000019 "$s" row 43 2123.7634943999992 174.34560000000019 174.67261230000017 "$s" row 44 2831.6846591999993 164.59200000000018 166.86276000000018 "$s" row 45 2831.6846591999993 165.65880000000018 166.89324000000016 "$s" row 46 2831.6846591999993 166.11600000000018 167.16756000000018 "$s" row 47 2831.6846591999993 167.64000000000019 168.32580000000019 "$s" row 48 2831.6846591999993 170.99280000000019 172.22724000000017 "$s" row 49 2831.6846591999993 171.60240000000019 172.58690400000017 "$s" row 50 2831.6846591999993 172.21200000000019 173.02063440000018 "$s" row 51 2831.6846591999993 172.82160000000019 173.48149200000017 "$s" row 52 2831.6846591999993 173.43120000000019 173.96917200000019 "$s" row 53 2831.6846591999993 174.04080000000019 174.47148240000018 "$s" row 54 2831.6846591999993 174.34560000000019 174.84547200000017 "$s" row 55 3539.6058239999988 164.59200000000018 167.3656800000002 "$s" row 56 3539.6058239999988 165.65880000000018 167.39616000000018 "$s" row 57 3539.6058239999988 166.11600000000018 167.64000000000019 "$s" row 58 3539.6058239999988 167.64000000000019 168.70680000000019 "$s" row 59 3539.6058239999988 170.99280000000019 172.73016000000018 "$s" row 60 3539.6058239999988 171.60240000000019 173.04353250000017 "$s" row 61 3539.6058239999988 172.21200000000019 173.39233800000017 "$s" row 62 3539.6058239999988 172.82160000000019 173.80172250000021 "$s" row 63 3539.6058239999988 173.43120000000019 174.23225250000016 "$s" row 64 3539.6058239999988 174.04080000000019 174.69631050000018 "$s" row 65 3539.6058239999988 174.34560000000019 175.05025950000018 "$s" row 66 4247.5269887999984 164.59200000000018 167.96004000000016 "$s" row 67 4247.5269887999984 165.65880000000018 167.99052000000017 "$s" row 68 4247.5269887999984 166.11600000000018 168.18864000000016 "$s" row 69 4247.5269887999984 167.64000000000019 169.16400000000019 "$s" row 70 4247.5269887999984 170.99280000000019 173.32452000000018 "$s" row 71 4247.5269887999984 171.60240000000019 173.5843620000002 "$s" row 72 4247.5269887999984 172.21200000000019 173.83185960000017 "$s" row 73 4247.5269887999984 172.82160000000019 174.1840560000002 "$s" row 74 4247.5269887999984 173.43120000000019 174.54676800000018 "$s" row 75 4247.5269887999984 174.04080000000019 174.96800160000021 "$s" row 76 4247.5269887999984 174.34560000000019 175.28697480000017 "$s" row 77 5663.3693183999985 164.59200000000018 169.17924000000016 "$s" row 78 5663.3693183999985 165.65880000000018 169.20972000000017 "$s" row 79 5663.3693183999985 166.11600000000018 169.36212000000017 "$s" row 80 5663.3693183999985 167.64000000000019 170.21556000000018 "$s" row 81 5663.3693183999985 170.99280000000019 174.54372000000018 "$s" row 82 5663.3693183999985 171.60240000000019 174.74184000000017 "$s" row 83 5663.3693183999985 172.21200000000019 174.91435680000018 "$s" row 84 5663.3693183999985 172.82160000000019 175.13503200000019 "$s" row 85 5663.3693183999985 173.43120000000019 175.33010400000018 "$s" row 86 5663.3693183999985 174.04080000000019 175.65197280000018 "$s" row 87 5663.3693183999985 174.34560000000019 175.85618880000018 "$s" row 88 7079.2116479999977 164.59200000000018 170.4136800000002 "$s" row 89 7079.2116479999977 165.65880000000018 170.44416000000018 "$s" row 90 7079.2116479999977 166.11600000000018 170.53560000000019 "$s" row 91 7079.2116479999977 167.64000000000019 171.29760000000019 "$s" row 92 7079.2116479999977 170.99280000000019 175.77816000000021 "$s" row 93 7079.2116479999977 171.60240000000019 175.9000800000002 "$s" row 94 7079.2116479999977 172.21200000000019 176.08296000000021 "$s" row 95 7079.2116479999977 172.82160000000019 176.2048800000002 "$s" row 96 7079.2116479999977 173.43120000000019 176.31918000000019 "$s" row 97 7079.2116479999977 174.04080000000019 176.52339600000019 "$s" row 98 7079.2116479999977 174.34560000000019 176.55311400000016 "$s" row 99 8495.0539775999969 164.59200000000018 171.4804800000002 "$s" row 100 8495.0539775999969 165.65880000000018 171.51096000000018 "$s" row 101 8495.0539775999969 166.11600000000018 171.57192000000018 "$s" row 102 8495.0539775999969 167.64000000000019 172.18152000000018 "$s" row 103 8495.0539775999969 170.99280000000019 176.84496000000021 "$s" row 104 8495.0539775999969 171.60240000000019 176.93640000000019 "$s" row 105 8495.0539775999969 172.21200000000019 177.02784000000017 "$s" row 106 8495.0539775999969 172.82160000000019 177.13452000000018 "$s" row 107 8495.0539775999969 173.43120000000019 177.24120000000019 "$s" row 108 8495.0539775999969 174.04080000000019 177.33264000000017 "$s" row 109 8495.0539775999969 174.34560000000019 177.37775040000017 "$s" row 110 10618.817471999997 164.59200000000018 172.57776000000018 "$s" row 111 10618.817471999997 165.65880000000018 172.60824000000017 "$s" row 112 10618.817471999997 166.11600000000018 172.66920000000019 "$s" row 113 10618.817471999997 167.64000000000019 173.12640000000019 "$s" row 114 10618.817471999997 170.99280000000019 177.94224000000017 "$s" row 115 10618.817471999997 171.60240000000019 178.00320000000019 "$s" row 116 10618.817471999997 172.21200000000019 178.06416000000021 "$s" row 117 10618.817471999997 172.82160000000019 178.12512000000018 "$s" row 118 10618.817471999997 173.43120000000019 178.1860800000002 "$s" row 119 10618.817471999997 174.04080000000019 178.24704000000017 "$s" row 120 10618.817471999997 174.34560000000019 178.30800000000019 "$s" row 121 14158.423295999995 164.59200000000018 173.64456000000018 "$s" row 122 14158.423295999995 165.65880000000018 173.67504000000017 "$s" row 123 14158.423295999995 166.11600000000018 173.70552000000018 "$s" row 124 14158.423295999995 167.64000000000019 174.01032000000018 "$s" row 125 14158.423295999995 170.99280000000019 179.00904000000017 "$s" row 126 14158.423295999995 171.60240000000019 179.07000000000019 "$s" row 127 14158.423295999995 172.21200000000019 179.13096000000021 "$s" row 128 14158.423295999995 172.82160000000019 179.19192000000018 "$s" row 129 14158.423295999995 173.43120000000019 179.2528800000002 "$s" row 130 14158.423295999995 174.04080000000019 179.31384000000017 "$s" row 131 14158.423295999995 174.34560000000019 179.37480000000019 "$o" {TableSlot} {Tail Water Reference Elevation} set s "$o.Tail Water Reference Elevation" "$s" order 64 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 170.70324000000016 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 33 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 14434795.718737939 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 15 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 152910971.59680021 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 152910971.59680021 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 42 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 12742580.96640002 0 0 "$s" row 1 NaN 14434795.718737939 7156233.4707302507 "$s" row 2 NaN NaN 14434795.718737939 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 22 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 186.2328000000002 185.6232000000002 185.6232000000002 "$s" row 1 NaN 186.8424000000002 186.2328000000002 "$s" row 2 NaN NaN 186.8424000000002 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 60 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 61 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 58 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 7079.2116479999986 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 51 "$s" sourceSlotName {Rock Island.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 75262780.219945058 11355.055483391998 "$o" {SeriesSlot} {Bypass Capacity} set s "$o.Bypass Capacity" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 5.6633693183999991 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Capacity Table} set s "$o.Bypass Capacity Table" "$s" order 8 "$s" sourceSlotName {Rock Island.Bypass Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Bypass Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 28.316846591999994 "$s" row 1 75262780.219945058 28.316846591999994 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 54 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 12742580.96640002 0 0 "$s" row 1 NaN 14434795.718737939 7156233.4707302507 "$s" row 2 NaN NaN 14434795.718737939 "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 35 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 46 "$s" resize 4 4 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 11.009391610034015 2406.9319603199992 3241.4935208631914 0 "$s" row 1 NaN NaN 3749.7168257126386 2310.9378503731195 "$s" row 2 NaN NaN NaN 3749.7168257126386 "$s" row 3 NaN NaN NaN 6382.3340533708779 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 70 "$s" resize 6 3 "$s" setRowLabels {} {} {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 12.801600000000013 11.887200000000012 6.7056000000000067 "$s" row 1 NaN 13.411200000000013 7.9248000000000083 "$s" row 2 NaN NaN 10.363200000000012 "$s" row 3 NaN NaN 12.801600000000013 "$s" row 4 NaN NaN 14.020800000000015 "$s" row 5 NaN NaN 16.459200000000017 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 68 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 67 "$s" resize 3 4 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 173.73600000000019 2831.6846591999993 0 2831.6846591999993 "$s" row 1 NaN NaN 4955.4481535999994 8495.0539775999987 "$s" row 2 NaN NaN NaN 14158.423295999997 "$o" {TableSlot} {Convolved Stage Flow Tailwater Table} set s "$o.Convolved Stage Flow Tailwater Table" "$s" order 14 "$s" sourceSlotName {Rock Island.Stage Flow Tailwater Table} "$s" resize 132 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Downstream Stage} {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 164.59200000000018 0 164.59200000000018 "$s" row 1 164.59200000000018 707.92116479999981 165.78072000000017 "$s" row 2 164.59200000000018 1415.8423295999996 166.08552000000017 "$s" row 3 164.59200000000018 2123.7634943999992 166.40556000000018 "$s" row 4 164.59200000000018 2831.6846591999993 166.86276000000018 "$s" row 5 164.59200000000018 3539.6058239999988 167.3656800000002 "$s" row 6 164.59200000000018 4247.5269887999984 167.96004000000016 "$s" row 7 164.59200000000018 5663.3693183999985 169.17924000000016 "$s" row 8 164.59200000000018 7079.2116479999977 170.4136800000002 "$s" row 9 164.59200000000018 8495.0539775999969 171.4804800000002 "$s" row 10 164.59200000000018 10618.817471999997 172.57776000000018 "$s" row 11 164.59200000000018 14158.423295999995 173.64456000000018 "$s" row 12 165.65880000000018 0 165.65880000000018 "$s" row 13 165.65880000000018 707.92116479999981 165.81120000000018 "$s" row 14 165.65880000000018 1415.8423295999996 166.11600000000018 "$s" row 15 165.65880000000018 2123.7634943999992 166.43604000000016 "$s" row 16 165.65880000000018 2831.6846591999993 166.89324000000016 "$s" row 17 165.65880000000018 3539.6058239999988 167.39616000000018 "$s" row 18 165.65880000000018 4247.5269887999984 167.99052000000017 "$s" row 19 165.65880000000018 5663.3693183999985 169.20972000000017 "$s" row 20 165.65880000000018 7079.2116479999977 170.44416000000018 "$s" row 21 165.65880000000018 8495.0539775999969 171.51096000000018 "$s" row 22 165.65880000000018 10618.817471999997 172.60824000000017 "$s" row 23 165.65880000000018 14158.423295999995 173.67504000000017 "$s" row 24 166.11600000000018 0 166.11600000000018 "$s" row 25 166.11600000000018 707.92116479999981 166.23792000000017 "$s" row 26 166.11600000000018 1415.8423295999996 166.48176000000018 "$s" row 27 166.11600000000018 2123.7634943999992 166.77132000000017 "$s" row 28 166.11600000000018 2831.6846591999993 167.16756000000018 "$s" row 29 166.11600000000018 3539.6058239999988 167.64000000000019 "$s" row 30 166.11600000000018 4247.5269887999984 168.18864000000016 "$s" row 31 166.11600000000018 5663.3693183999985 169.36212000000017 "$s" row 32 166.11600000000018 7079.2116479999977 170.53560000000019 "$s" row 33 166.11600000000018 8495.0539775999969 171.57192000000018 "$s" row 34 166.11600000000018 10618.817471999997 172.66920000000019 "$s" row 35 166.11600000000018 14158.423295999995 173.70552000000018 "$s" row 36 167.64000000000019 0 167.64000000000019 "$s" row 37 167.64000000000019 707.92116479999981 167.70096000000018 "$s" row 38 167.64000000000019 1415.8423295999996 167.85336000000018 "$s" row 39 167.64000000000019 2123.7634943999992 168.08196000000018 "$s" row 40 167.64000000000019 2831.6846591999993 168.32580000000019 "$s" row 41 167.64000000000019 3539.6058239999988 168.70680000000019 "$s" row 42 167.64000000000019 4247.5269887999984 169.16400000000019 "$s" row 43 167.64000000000019 5663.3693183999985 170.21556000000018 "$s" row 44 167.64000000000019 7079.2116479999977 171.29760000000019 "$s" row 45 167.64000000000019 8495.0539775999969 172.18152000000018 "$s" row 46 167.64000000000019 10618.817471999997 173.12640000000019 "$s" row 47 167.64000000000019 14158.423295999995 174.01032000000018 "$s" row 48 170.99280000000019 0 170.99280000000019 "$s" row 49 170.99280000000019 707.92116479999981 171.14520000000019 "$s" row 50 170.99280000000019 1415.8423295999996 171.45000000000019 "$s" row 51 170.99280000000019 2123.7634943999992 171.77004000000017 "$s" row 52 170.99280000000019 2831.6846591999993 172.22724000000017 "$s" row 53 170.99280000000019 3539.6058239999988 172.73016000000018 "$s" row 54 170.99280000000019 4247.5269887999984 173.32452000000018 "$s" row 55 170.99280000000019 5663.3693183999985 174.54372000000018 "$s" row 56 170.99280000000019 7079.2116479999977 175.77816000000021 "$s" row 57 170.99280000000019 8495.0539775999969 176.84496000000021 "$s" row 58 170.99280000000019 10618.817471999997 177.94224000000017 "$s" row 59 170.99280000000019 14158.423295999995 179.00904000000017 "$s" row 60 171.60240000000019 0 171.60240000000019 "$s" row 61 171.60240000000019 707.92116479999981 171.72222450000021 "$s" row 62 171.60240000000019 1415.8423295999996 171.92625000000018 "$s" row 63 171.60240000000019 2123.7634943999992 172.21447650000016 "$s" row 64 171.60240000000019 2831.6846591999993 172.58690400000017 "$s" row 65 171.60240000000019 3539.6058239999988 173.04353250000017 "$s" row 66 171.60240000000019 4247.5269887999984 173.5843620000002 "$s" row 67 171.60240000000019 5663.3693183999985 174.74184000000017 "$s" row 68 171.60240000000019 7079.2116479999977 175.9000800000002 "$s" row 69 171.60240000000019 8495.0539775999969 176.93640000000019 "$s" row 70 171.60240000000019 10618.817471999997 178.00320000000019 "$s" row 71 171.60240000000019 14158.423295999995 179.07000000000019 "$s" row 72 172.21200000000019 0 172.21200000000019 "$s" row 73 172.21200000000019 707.92116479999981 172.3124316000002 "$s" row 74 172.21200000000019 1415.8423295999996 172.48068120000016 "$s" row 75 172.21200000000019 2123.7634943999992 172.71674880000018 "$s" row 76 172.21200000000019 2831.6846591999993 173.02063440000018 "$s" row 77 172.21200000000019 3539.6058239999988 173.39233800000017 "$s" row 78 172.21200000000019 4247.5269887999984 173.83185960000017 "$s" row 79 172.21200000000019 5663.3693183999985 174.91435680000018 "$s" row 80 172.21200000000019 7079.2116479999977 176.08296000000021 "$s" row 81 172.21200000000019 8495.0539775999969 177.02784000000017 "$s" row 82 172.21200000000019 10618.817471999997 178.06416000000021 "$s" row 83 172.21200000000019 14158.423295999995 179.13096000000021 "$s" row 84 172.82160000000019 0 172.82160000000019 "$s" row 85 172.82160000000019 707.92116479999981 172.89341850000019 "$s" row 86 172.82160000000019 1415.8423295999996 173.02734000000018 "$s" row 87 172.82160000000019 2123.7634943999992 173.22336450000017 "$s" row 88 172.82160000000019 2831.6846591999993 173.48149200000017 "$s" row 89 172.82160000000019 3539.6058239999988 173.80172250000021 "$s" row 90 172.82160000000019 4247.5269887999984 174.1840560000002 "$s" row 91 172.82160000000019 5663.3693183999985 175.13503200000019 "$s" row 92 172.82160000000019 7079.2116479999977 176.2048800000002 "$s" row 93 172.82160000000019 8495.0539775999969 177.13452000000018 "$s" row 94 172.82160000000019 10618.817471999997 178.12512000000018 "$s" row 95 172.82160000000019 14158.423295999995 179.19192000000018 "$s" row 96 173.43120000000019 0 173.43120000000019 "$s" row 97 173.43120000000019 707.92116479999981 173.4885405000002 "$s" row 98 173.43120000000019 1415.8423295999996 173.59731600000018 "$s" row 99 173.43120000000019 2123.7634943999992 173.75752650000018 "$s" row 100 173.43120000000019 2831.6846591999993 173.96917200000019 "$s" row 101 173.43120000000019 3539.6058239999988 174.23225250000016 "$s" row 102 173.43120000000019 4247.5269887999984 174.54676800000018 "$s" row 103 173.43120000000019 5663.3693183999985 175.33010400000018 "$s" row 104 173.43120000000019 7079.2116479999977 176.31918000000019 "$s" row 105 173.43120000000019 8495.0539775999969 177.24120000000019 "$s" row 106 173.43120000000019 10618.817471999997 178.1860800000002 "$s" row 107 173.43120000000019 14158.423295999995 179.2528800000002 "$s" row 108 174.04080000000019 0 174.04080000000019 "$s" row 109 174.04080000000019 707.92116479999981 174.07817610000018 "$s" row 110 174.04080000000019 1415.8423295999996 174.1624152000002 "$s" row 111 174.04080000000019 2123.7634943999992 174.29351730000019 "$s" row 112 174.04080000000019 2831.6846591999993 174.47148240000018 "$s" row 113 174.04080000000019 3539.6058239999988 174.69631050000018 "$s" row 114 174.04080000000019 4247.5269887999984 174.96800160000021 "$s" row 115 174.04080000000019 5663.3693183999985 175.65197280000018 "$s" row 116 174.04080000000019 7079.2116479999977 176.52339600000019 "$s" row 117 174.04080000000019 8495.0539775999969 177.33264000000017 "$s" row 118 174.04080000000019 10618.817471999997 178.24704000000017 "$s" row 119 174.04080000000019 14158.423295999995 179.31384000000017 "$s" row 120 174.34560000000019 0 174.34560000000019 "$s" row 121 174.34560000000019 707.92116479999981 174.42267630000018 "$s" row 122 174.34560000000019 1415.8423295999996 174.5316804000002 "$s" row 123 174.34560000000019 2123.7634943999992 174.67261230000017 "$s" row 124 174.34560000000019 2831.6846591999993 174.84547200000017 "$s" row 125 174.34560000000019 3539.6058239999988 175.05025950000018 "$s" row 126 174.34560000000019 4247.5269887999984 175.28697480000017 "$s" row 127 174.34560000000019 5663.3693183999985 175.85618880000018 "$s" row 128 174.34560000000019 7079.2116479999977 176.55311400000016 "$s" row 129 174.34560000000019 8495.0539775999969 177.37775040000017 "$s" row 130 174.34560000000019 10618.817471999997 178.30800000000019 "$s" row 131 174.34560000000019 14158.423295999995 179.37480000000019 "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {Rock Island Constraints} set o "$ws.Rock Island Constraints" $ws SimObj $obj {DataObj} 153 1035 {} 1533 2542 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5033 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Minimum Generation Manual} set s "$o.Minimum Generation Manual" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 6 "$s" units 3 {%f} 2 "$s" value 185.6232000000002 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 5 "$s" units 3 {%f} 2 "$s" value 186.8424000000002 {m} "$o" {SeriesSlot} {Fish Ladder} set s "$o.Fish Ladder" "$s" order 3 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spring Fish Spill Percent Default} set s "$o.Spring Fish Spill Percent Default" "$s" order 32 "$s" units 0 {%f} 2 "$s" value 0.10000000000000001 {NONE} "$o" {ScalarSlot} {Summer Fish Spill Percent Default} set s "$o.Summer Fish Spill Percent Default" "$s" order 36 "$s" units 0 {%f} 2 "$s" value 0.20000000000000001 {NONE} "$o" {SeriesSlot} {Fish Bypass} set s "$o.Fish Bypass" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Recreation Weekend Min Elevation} set s "$o.Recreation Weekend Min Elevation" "$s" order 17 "$s" units 3 {%f} 2 "$s" value NaN {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 270 @ 121 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 350 @ 59 345 @ 62 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 185.6232000000002 @ 121 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 164.59200000000018 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 184.4040000000002 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 186.8424000000002 @ 121 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Summer Fish Spill Percent Manual} set s "$o.Summer Fish Spill Percent Manual" "$s" order 37 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {Spring Fish Spill Percent Manual} set s "$o.Spring Fish Spill Percent Manual" "$s" order 33 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {TableSlot} {Recreation Weekend} set s "$o.Recreation Weekend" "$s" order 16 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Summer Fish Spill Season Default} set s "$o.Summer Fish Spill Season Default" "$s" order 38 "$s" userDescript {Sets the default active season for Summer Fish Spill from June 8 to August 15 (based on average dates from Data for ORNL Model 2-14-11.xlsx provided by Grant County PUD). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Summer Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 139885200.5 "$s" row 1 145843200.5 "$o" {TableSlot} {Summer Fish Spill Season Operations} set s "$o.Summer Fish Spill Season Operations" "$s" order 39 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spring Fish Spill Season Default} set s "$o.Spring Fish Spill Season Default" "$s" order 34 "$s" userDescript {Sets the default active season for Spring Fish Spill from April 17 through June 7 (based on average dates from Data for ORNL Model 2-14-11.xlsx provided by Grant County PUD). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Spring Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135392400.5 "$s" row 1 139881600.5 "$o" {TableSlot} {Spring Fish Spill Season Operations} set s "$o.Spring Fish Spill Season Operations" "$s" order 35 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135392400.5 "$s" row 1 139881600.5 "$o" {ScalarSlot} {Minimum Generation Default} set s "$o.Minimum Generation Default" "$s" order 7 "$s" units 29 {%f} 2 "$s" value 17 {MW} "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 31 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Rock Island", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 509.70323865599988 @ 7 736.23801139199986 @ 4 679.60431820799977 @ 4 566.33693183999981 @ 3 311.48531251199989 @ 5 566.33693183999981 @ 8 679.60431820799977 @ 8 566.33693183999981 @ 3 311.48531251199989 @ 5 566.33693183999981 @ 8 679.60431820799977 @ 8 566.33693183999981 @ 3 311.48531251199989 @ 5 566.33693183999981 @ 8 679.60431820799977 @ 8 566.33693183999981 @ 3 311.48531251199989 @ 5 566.33693183999981 @ 8 679.60431820799977 @ 4 0 @ 62 "$o" {SeriesSlot} {Desired Operating Elevation} set s "$o.Desired Operating Elevation" "$s" order 0 "$s" computedByExpr 3 {IF ( "ResNameFromDataObj"( ThisObject ) & "Turbine Release" [@"t"] >= "TableInterpolation"( "ResNameFromDataObj"( ThisObject ) & "Auto Max Turbine Q", 0.00000000, 1.00000000, "ResNameFromDataObj"( ThisObject ) & "Operating Head" [@"t"], @"t" ) )\ THEN\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"] - 1.00000000 "ft"\ ELSE\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 42 "$s" units 15 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 49 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 48 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Allowable Curvature Scalar} set s "$o.Turbine Release Allowable Curvature Scalar" "$s" order 41 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 4077.6259092479991 {cms} "$o" {SeriesSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 40 "$s" computedByExpr 2 {IF ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) < 24.00000000 "hr" AND @"t" != @"24:00:00" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) ) / 1.00000000 "hr" )\ ELSE\ IF ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) < 24.00000000 "hr" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) ) / 1.00000000 "hr" )\ ELSE\ ThisObject & "Turbine Release Curvature Parameter" [] * 24.00000000\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {ScalarSlot} {Target Operating Range} set s "$o.Target Operating Range" "$s" order 42 "$s" units 2 {%f} 2 "$s" value 0.15240000000000017 {m} "$o" {SeriesSlot} {Percent Full} set s "$o.Percent Full" "$s" order 43 "$s" computedByExpr 3 {1.00000000 - "RelativeDraft"( "ResNameFromDataObj"( ThisObject ), @"t" )} "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pond Limits Adjustment} set s "$o.Pond Limits Adjustment" "$s" order 52 "$s" units 2 {%f} 2 "$s" value 0 {m} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 50 "$s" units 2 {%f} 2 "$s" value 0.15240000000000017 {m} "$o" {ScalarSlot} {Pool Elevation Max Margin Default} set s "$o.Pool Elevation Max Margin Default" "$s" order 46 "$s" units 2 {%f} 2 "$s" value 0.06096000000000007 {m} "$o" {SeriesSlot} {Pool Elevation Max with Margin} set s "$o.Pool Elevation Max with Margin" "$s" order 35 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Max Pool Elevation", @"t" ) )\ THEN\ "Min"( ThisObject & "License Max Pool Elevation" [], ThisObject & "Special Operations Max Pool Elevation" [] )\ ELSE\ ThisObject & "License Max Pool Elevation" []\ ENDIF - ThisObject & "Pool Elevation Max Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pool Elevation Min Margin Default} set s "$o.Pool Elevation Min Margin Default" "$s" order 47 "$s" units 2 {%f} 2 "$s" value 0.076200000000000087 {m} "$o" {SeriesSlot} {Pool Elevation Min with Margin} set s "$o.Pool Elevation Min with Margin" "$s" order 34 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Min Pool Elevation", @"t" ) )\ THEN\ "Max"( ThisObject & "License Min Pool Elevation" [], ThisObject & "Special Operations Min Pool Elevation" [] )\ ELSE\ ThisObject & "License Min Pool Elevation" []\ ENDIF + ThisObject & "Pool Elevation Min Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Max Controlling} set s "$o.Elevation Max Controlling" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Elevation Min Controlling} set s "$o.Elevation Min Controlling" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Min Margin} set s "$o.Pool Elevation Min Margin" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Max Margin} set s "$o.Pool Elevation Max Margin" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Operating Head} set s "$o.Shifted Operating Head" "$s" order 42 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Turbine Release} set s "$o.Shifted Turbine Release" "$s" order 43 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency} set s "$o.Efficiency" "$s" order 44 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Estimate} set s "$o.Turbine Release Estimate" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head Estimate} set s "$o.Operating Head Estimate" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency Estimate} set s "$o.Efficiency Estimate" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Max Efficiency Turbine Release} set s "$o.Max Efficiency Turbine Release" "$s" order 48 "$s" units 15 {%f} 2 "$s" value NaN {cms} "$o" {ScalarSlot} {Max Efficiency Operating Head} set s "$o.Max Efficiency Operating Head" "$s" order 49 "$s" units 2 {%f} 2 "$s" value NaN {m} "$o" {ScalarSlot} {cos Efficiency Theta} set s "$o.cos Efficiency Theta" "$s" order 50 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {sin Efficiency Theta} set s "$o.sin Efficiency Theta" "$s" order 51 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Pool Elevation Estimate} set s "$o.Pool Elevation Estimate" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Estimate Avg} set s "$o.Pool Elevation Estimate Avg" "$s" order 53 "$s" units 2 {%f} 2 "$s" value 186.73702538361132 {m} "$o" {SeriesSlot} {Inflow Estimate} set s "$o.Inflow Estimate" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Estimate} set s "$o.Outflow Estimate" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Estimate Avg} set s "$o.Outflow Estimate Avg" "$s" order 56 "$s" units 15 {%f} 2 "$s" value 5859.966124356466 {cms} "$o" {ScalarSlot} {Tailwater Estimate Avg} set s "$o.Tailwater Estimate Avg" "$s" order 57 "$s" units 2 {%f} 2 "$s" value 175.72763377357731 {m} "$o" {SeriesSlot} {Tailwater Estimate} set s "$o.Tailwater Estimate" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Operating Head Estimate Avg} set s "$o.Operating Head Estimate Avg" "$s" order 59 "$s" units 2 {%f} 2 "$s" value 11.009391610034015 {m} "$o" {ScalarSlot} {Max Efficiency} set s "$o.Max Efficiency" "$s" order 60 "$s" units 75 {%f} 2 "$s" value NaN {decimal} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 625 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 186.8424000000002 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 184.4040000000002 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 67 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 185.6232000000002 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 70 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 164.59200000000018 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 72 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {HK Estimate} set s "$o.HK Estimate" "$s" order 74 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK} set s "$o.HK" "$s" order 75 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax 0 0.17657333360744296 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Operating Head Count} set s "$o.HK Operating Head Count" "$s" order 76 "$s" units 0 {%f} 2 "$s" value 4 {NONE} "$o" {TableSlot} {HK Table Operating Head} set s "$o.HK Table Operating Head" "$s" order 77 "$s" resize 4 1 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 2 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 6.7056000000000067 "$s" row 1 10.668000000000012 "$s" row 2 15.240000000000016 "$s" row 3 24.384000000000025 "$o" {TableSlot} {HK Table Turbine Release} set s "$o.HK Table Turbine Release" "$s" order 78 "$s" resize 7 1 "$s" setRowLabels {} {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 15 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 28.316846591999994 "$s" row 1 2406.9319603199992 "$s" row 2 2690.1004262399993 "$s" row 3 3539.6058239999988 "$s" row 4 3822.7742899199989 "$s" row 5 5804.9535513599985 "$s" row 6 6456.241022975998 "$o" {ScalarSlot} {HK Turbine Release Count} set s "$o.HK Turbine Release Count" "$s" order 79 "$s" units 0 {%f} 2 "$s" value 7 {NONE} "$o" {TableSlot} {HK Table} set s "$o.HK Table" "$s" order 80 "$s" resize 15 15 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setMaximums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setUnits 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} "$s" row 0 0.05502417460393718 0.05502417460393718 0.054455680751202801 0.051999787307390313 0.05140106180277746 0 0 NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 1 0.090336189794500685 0.090315492908858888 0.089393829184725979 0.087396080355362157 0.086683893830540926 0.081936096352138763 0 NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 2 0.13275520633345098 0.13269198345820057 0.13170622032664192 0.12960455847182115 0.12780645760102741 0.12013163681105414 0 NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 3 0.14657256772538732 0.14657256772538732 0.14657256772538732 0.14656834312925213 0.14656673197814366 0.1465598551136563 0 NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$o" {ScalarSlot} {HK Count} set s "$o.HK Count" "$s" order 81 "$s" units 0 {%f} 2 "$s" value 28 {NONE} "$o" {TableSlot} {HK Table 3D} set s "$o.HK Table 3D" "$s" order 82 "$s" resize 225 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {HK} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 2 15 30 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 6.7056000000000067 28.316846591999994 0.05502417460393718 "$s" row 1 6.7056000000000067 2406.9319603199992 0.05502417460393718 "$s" row 2 6.7056000000000067 2690.1004262399993 0.054455680751202801 "$s" row 3 6.7056000000000067 3539.6058239999988 0.051999787307390313 "$s" row 4 6.7056000000000067 3822.7742899199989 0.05140106180277746 "$s" row 5 6.7056000000000067 5804.9535513599985 0 "$s" row 6 6.7056000000000067 6456.241022975998 0 "$s" row 7 10.668000000000012 28.316846591999994 0.090336189794500685 "$s" row 8 10.668000000000012 2406.9319603199992 0.090315492908858888 "$s" row 9 10.668000000000012 2690.1004262399993 0.089393829184725979 "$s" row 10 10.668000000000012 3539.6058239999988 0.087396080355362157 "$s" row 11 10.668000000000012 3822.7742899199989 0.086683893830540926 "$s" row 12 10.668000000000012 5804.9535513599985 0.081936096352138763 "$s" row 13 10.668000000000012 6456.241022975998 0 "$s" row 14 15.240000000000016 28.316846591999994 0.13275520633345098 "$s" row 15 15.240000000000016 2406.9319603199992 0.13269198345820057 "$s" row 16 15.240000000000016 2690.1004262399993 0.13170622032664192 "$s" row 17 15.240000000000016 3539.6058239999988 0.12960455847182115 "$s" row 18 15.240000000000016 3822.7742899199989 0.12780645760102741 "$s" row 19 15.240000000000016 5804.9535513599985 0.12013163681105414 "$s" row 20 15.240000000000016 6456.241022975998 0 "$s" row 21 24.384000000000025 28.316846591999994 0.14657256772538732 "$s" row 22 24.384000000000025 2406.9319603199992 0.14657256772538732 "$s" row 23 24.384000000000025 2690.1004262399993 0.14657256772538732 "$s" row 24 24.384000000000025 3539.6058239999988 0.14656834312925213 "$s" row 25 24.384000000000025 3822.7742899199989 0.14656673197814366 "$s" row 26 24.384000000000025 5804.9535513599985 0.1465598551136563 "$s" row 27 24.384000000000025 6456.241022975998 0 "$s" row 28 NaN NaN NaN "$s" row 29 NaN NaN NaN "$s" row 30 NaN NaN NaN "$s" row 31 NaN NaN NaN "$s" row 32 NaN NaN NaN "$s" row 33 NaN NaN NaN "$s" row 34 NaN NaN NaN "$s" row 35 NaN NaN NaN "$s" row 36 NaN NaN NaN "$s" row 37 NaN NaN NaN "$s" row 38 NaN NaN NaN "$s" row 39 NaN NaN NaN "$s" row 40 NaN NaN NaN "$s" row 41 NaN NaN NaN "$s" row 42 NaN NaN NaN "$s" row 43 NaN NaN NaN "$s" row 44 NaN NaN NaN "$s" row 45 NaN NaN NaN "$s" row 46 NaN NaN NaN "$s" row 47 NaN NaN NaN "$s" row 48 NaN NaN NaN "$s" row 49 NaN NaN NaN "$s" row 50 NaN NaN NaN "$s" row 51 NaN NaN NaN "$s" row 52 NaN NaN NaN "$s" row 53 NaN NaN NaN "$s" row 54 NaN NaN NaN "$s" row 55 NaN NaN NaN "$s" row 56 NaN NaN NaN "$s" row 57 NaN NaN NaN "$s" row 58 NaN NaN NaN "$s" row 59 NaN NaN NaN "$s" row 60 NaN NaN NaN "$s" row 61 NaN NaN NaN "$s" row 62 NaN NaN NaN "$s" row 63 NaN NaN NaN "$s" row 64 NaN NaN NaN "$s" row 65 NaN NaN NaN "$s" row 66 NaN NaN NaN "$s" row 67 NaN NaN NaN "$s" row 68 NaN NaN NaN "$s" row 69 NaN NaN NaN "$s" row 70 NaN NaN NaN "$s" row 71 NaN NaN NaN "$s" row 72 NaN NaN NaN "$s" row 73 NaN NaN NaN "$s" row 74 NaN NaN NaN "$s" row 75 NaN NaN NaN "$s" row 76 NaN NaN NaN "$s" row 77 NaN NaN NaN "$s" row 78 NaN NaN NaN "$s" row 79 NaN NaN NaN "$s" row 80 NaN NaN NaN "$s" row 81 NaN NaN NaN "$s" row 82 NaN NaN NaN "$s" row 83 NaN NaN NaN "$s" row 84 NaN NaN NaN "$s" row 85 NaN NaN NaN "$s" row 86 NaN NaN NaN "$s" row 87 NaN NaN NaN "$s" row 88 NaN NaN NaN "$s" row 89 NaN NaN NaN "$s" row 90 NaN NaN NaN "$s" row 91 NaN NaN NaN "$s" row 92 NaN NaN NaN "$s" row 93 NaN NaN NaN "$s" row 94 NaN NaN NaN "$s" row 95 NaN NaN NaN "$s" row 96 NaN NaN NaN "$s" row 97 NaN NaN NaN "$s" row 98 NaN NaN NaN "$s" row 99 NaN NaN NaN "$s" row 100 NaN NaN NaN "$s" row 101 NaN NaN NaN "$s" row 102 NaN NaN NaN "$s" row 103 NaN NaN NaN "$s" row 104 NaN NaN NaN "$s" row 105 NaN NaN NaN "$s" row 106 NaN NaN NaN "$s" row 107 NaN NaN NaN "$s" row 108 NaN NaN NaN "$s" row 109 NaN NaN NaN "$s" row 110 NaN NaN NaN "$s" row 111 NaN NaN NaN "$s" row 112 NaN NaN NaN "$s" row 113 NaN NaN NaN "$s" row 114 NaN NaN NaN "$s" row 115 NaN NaN NaN "$s" row 116 NaN NaN NaN "$s" row 117 NaN NaN NaN "$s" row 118 NaN NaN NaN "$s" row 119 NaN NaN NaN "$s" row 120 NaN NaN NaN "$s" row 121 NaN NaN NaN "$s" row 122 NaN NaN NaN "$s" row 123 NaN NaN NaN "$s" row 124 NaN NaN NaN "$s" row 125 NaN NaN NaN "$s" row 126 NaN NaN NaN "$s" row 127 NaN NaN NaN "$s" row 128 NaN NaN NaN "$s" row 129 NaN NaN NaN "$s" row 130 NaN NaN NaN "$s" row 131 NaN NaN NaN "$s" row 132 NaN NaN NaN "$s" row 133 NaN NaN NaN "$s" row 134 NaN NaN NaN "$s" row 135 NaN NaN NaN "$s" row 136 NaN NaN NaN "$s" row 137 NaN NaN NaN "$s" row 138 NaN NaN NaN "$s" row 139 NaN NaN NaN "$s" row 140 NaN NaN NaN "$s" row 141 NaN NaN NaN "$s" row 142 NaN NaN NaN "$s" row 143 NaN NaN NaN "$s" row 144 NaN NaN NaN "$s" row 145 NaN NaN NaN "$s" row 146 NaN NaN NaN "$s" row 147 NaN NaN NaN "$s" row 148 NaN NaN NaN "$s" row 149 NaN NaN NaN "$s" row 150 NaN NaN NaN "$s" row 151 NaN NaN NaN "$s" row 152 NaN NaN NaN "$s" row 153 NaN NaN NaN "$s" row 154 NaN NaN NaN "$s" row 155 NaN NaN NaN "$s" row 156 NaN NaN NaN "$s" row 157 NaN NaN NaN "$s" row 158 NaN NaN NaN "$s" row 159 NaN NaN NaN "$s" row 160 NaN NaN NaN "$s" row 161 NaN NaN NaN "$s" row 162 NaN NaN NaN "$s" row 163 NaN NaN NaN "$s" row 164 NaN NaN NaN "$s" row 165 NaN NaN NaN "$s" row 166 NaN NaN NaN "$s" row 167 NaN NaN NaN "$s" row 168 NaN NaN NaN "$s" row 169 NaN NaN NaN "$s" row 170 NaN NaN NaN "$s" row 171 NaN NaN NaN "$s" row 172 NaN NaN NaN "$s" row 173 NaN NaN NaN "$s" row 174 NaN NaN NaN "$s" row 175 NaN NaN NaN "$s" row 176 NaN NaN NaN "$s" row 177 NaN NaN NaN "$s" row 178 NaN NaN NaN "$s" row 179 NaN NaN NaN "$s" row 180 NaN NaN NaN "$s" row 181 NaN NaN NaN "$s" row 182 NaN NaN NaN "$s" row 183 NaN NaN NaN "$s" row 184 NaN NaN NaN "$s" row 185 NaN NaN NaN "$s" row 186 NaN NaN NaN "$s" row 187 NaN NaN NaN "$s" row 188 NaN NaN NaN "$s" row 189 NaN NaN NaN "$s" row 190 NaN NaN NaN "$s" row 191 NaN NaN NaN "$s" row 192 NaN NaN NaN "$s" row 193 NaN NaN NaN "$s" row 194 NaN NaN NaN "$s" row 195 NaN NaN NaN "$s" row 196 NaN NaN NaN "$s" row 197 NaN NaN NaN "$s" row 198 NaN NaN NaN "$s" row 199 NaN NaN NaN "$s" row 200 NaN NaN NaN "$s" row 201 NaN NaN NaN "$s" row 202 NaN NaN NaN "$s" row 203 NaN NaN NaN "$s" row 204 NaN NaN NaN "$s" row 205 NaN NaN NaN "$s" row 206 NaN NaN NaN "$s" row 207 NaN NaN NaN "$s" row 208 NaN NaN NaN "$s" row 209 NaN NaN NaN "$s" row 210 NaN NaN NaN "$s" row 211 NaN NaN NaN "$s" row 212 NaN NaN NaN "$s" row 213 NaN NaN NaN "$s" row 214 NaN NaN NaN "$s" row 215 NaN NaN NaN "$s" row 216 NaN NaN NaN "$s" row 217 NaN NaN NaN "$s" row 218 NaN NaN NaN "$s" row 219 NaN NaN NaN "$s" row 220 NaN NaN NaN "$s" row 221 NaN NaN NaN "$s" row 222 NaN NaN NaN "$s" row 223 NaN NaN NaN "$s" row 224 NaN NaN 0 "$o" {SeriesSlot} {HKWeight_0} set s "$o.HKWeight_0" "$s" order 83 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_1} set s "$o.HKWeight_1" "$s" order 84 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_10} set s "$o.HKWeight_10" "$s" order 85 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_11} set s "$o.HKWeight_11" "$s" order 86 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_12} set s "$o.HKWeight_12" "$s" order 87 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_13} set s "$o.HKWeight_13" "$s" order 88 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_14} set s "$o.HKWeight_14" "$s" order 89 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_15} set s "$o.HKWeight_15" "$s" order 90 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_16} set s "$o.HKWeight_16" "$s" order 91 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_17} set s "$o.HKWeight_17" "$s" order 92 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_18} set s "$o.HKWeight_18" "$s" order 93 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_19} set s "$o.HKWeight_19" "$s" order 94 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_2} set s "$o.HKWeight_2" "$s" order 95 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_20} set s "$o.HKWeight_20" "$s" order 96 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_21} set s "$o.HKWeight_21" "$s" order 97 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_22} set s "$o.HKWeight_22" "$s" order 98 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_23} set s "$o.HKWeight_23" "$s" order 99 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_24} set s "$o.HKWeight_24" "$s" order 100 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_25} set s "$o.HKWeight_25" "$s" order 101 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_3} set s "$o.HKWeight_3" "$s" order 102 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_4} set s "$o.HKWeight_4" "$s" order 103 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_5} set s "$o.HKWeight_5" "$s" order 104 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_6} set s "$o.HKWeight_6" "$s" order 105 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_7} set s "$o.HKWeight_7" "$s" order 106 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_8} set s "$o.HKWeight_8" "$s" order 107 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_9} set s "$o.HKWeight_9" "$s" order 108 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_26} set s "$o.HKWeight_26" "$s" order 109 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_27} set s "$o.HKWeight_27" "$s" order 110 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_28} set s "$o.HKWeight_28" "$s" order 111 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_29} set s "$o.HKWeight_29" "$s" order 112 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_30} set s "$o.HKWeight_30" "$s" order 113 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_31} set s "$o.HKWeight_31" "$s" order 114 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_32} set s "$o.HKWeight_32" "$s" order 115 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_33} set s "$o.HKWeight_33" "$s" order 116 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_34} set s "$o.HKWeight_34" "$s" order 117 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_35} set s "$o.HKWeight_35" "$s" order 118 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_36} set s "$o.HKWeight_36" "$s" order 119 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_37} set s "$o.HKWeight_37" "$s" order 120 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_40} set s "$o.HKWeight_40" "$s" order 121 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_41} set s "$o.HKWeight_41" "$s" order 122 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_42} set s "$o.HKWeight_42" "$s" order 123 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_43} set s "$o.HKWeight_43" "$s" order 124 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_44} set s "$o.HKWeight_44" "$s" order 125 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_45} set s "$o.HKWeight_45" "$s" order 126 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_46} set s "$o.HKWeight_46" "$s" order 127 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_47} set s "$o.HKWeight_47" "$s" order 128 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_48} set s "$o.HKWeight_48" "$s" order 129 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_49} set s "$o.HKWeight_49" "$s" order 130 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_50} set s "$o.HKWeight_50" "$s" order 131 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_51} set s "$o.HKWeight_51" "$s" order 132 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_52} set s "$o.HKWeight_52" "$s" order 133 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_54} set s "$o.HKWeight_54" "$s" order 134 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_55} set s "$o.HKWeight_55" "$s" order 135 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_56} set s "$o.HKWeight_56" "$s" order 136 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_57} set s "$o.HKWeight_57" "$s" order 137 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_58} set s "$o.HKWeight_58" "$s" order 138 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_59} set s "$o.HKWeight_59" "$s" order 139 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_60} set s "$o.HKWeight_60" "$s" order 140 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_61} set s "$o.HKWeight_61" "$s" order 141 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_62} set s "$o.HKWeight_62" "$s" order 142 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_63} set s "$o.HKWeight_63" "$s" order 143 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_64} set s "$o.HKWeight_64" "$s" order 144 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_65} set s "$o.HKWeight_65" "$s" order 145 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_66} set s "$o.HKWeight_66" "$s" order 146 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_67} set s "$o.HKWeight_67" "$s" order 147 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_68} set s "$o.HKWeight_68" "$s" order 148 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_69} set s "$o.HKWeight_69" "$s" order 149 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_70} set s "$o.HKWeight_70" "$s" order 150 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_71} set s "$o.HKWeight_71" "$s" order 151 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_72} set s "$o.HKWeight_72" "$s" order 152 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_73} set s "$o.HKWeight_73" "$s" order 153 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_74} set s "$o.HKWeight_74" "$s" order 154 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_75} set s "$o.HKWeight_75" "$s" order 155 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_100} set s "$o.HKWeight_100" "$s" order 156 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_76} set s "$o.HKWeight_76" "$s" order 157 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_77} set s "$o.HKWeight_77" "$s" order 158 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_78} set s "$o.HKWeight_78" "$s" order 159 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_79} set s "$o.HKWeight_79" "$s" order 160 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_80} set s "$o.HKWeight_80" "$s" order 161 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_81} set s "$o.HKWeight_81" "$s" order 162 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_82} set s "$o.HKWeight_82" "$s" order 163 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_83} set s "$o.HKWeight_83" "$s" order 164 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_84} set s "$o.HKWeight_84" "$s" order 165 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_85} set s "$o.HKWeight_85" "$s" order 166 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_86} set s "$o.HKWeight_86" "$s" order 167 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_87} set s "$o.HKWeight_87" "$s" order 168 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_88} set s "$o.HKWeight_88" "$s" order 169 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_89} set s "$o.HKWeight_89" "$s" order 170 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_90} set s "$o.HKWeight_90" "$s" order 171 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_91} set s "$o.HKWeight_91" "$s" order 172 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_92} set s "$o.HKWeight_92" "$s" order 173 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_93} set s "$o.HKWeight_93" "$s" order 174 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_94} set s "$o.HKWeight_94" "$s" order 175 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_95} set s "$o.HKWeight_95" "$s" order 176 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_96} set s "$o.HKWeight_96" "$s" order 177 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_97} set s "$o.HKWeight_97" "$s" order 178 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_98} set s "$o.HKWeight_98" "$s" order 179 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_99} set s "$o.HKWeight_99" "$s" order 180 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_101} set s "$o.HKWeight_101" "$s" order 181 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_102} set s "$o.HKWeight_102" "$s" order 182 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_103} set s "$o.HKWeight_103" "$s" order 183 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_104} set s "$o.HKWeight_104" "$s" order 184 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_105} set s "$o.HKWeight_105" "$s" order 185 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_106} set s "$o.HKWeight_106" "$s" order 186 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_107} set s "$o.HKWeight_107" "$s" order 187 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_108} set s "$o.HKWeight_108" "$s" order 188 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_109} set s "$o.HKWeight_109" "$s" order 189 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_110} set s "$o.HKWeight_110" "$s" order 190 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_111} set s "$o.HKWeight_111" "$s" order 191 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_112} set s "$o.HKWeight_112" "$s" order 192 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_113} set s "$o.HKWeight_113" "$s" order 193 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_114} set s "$o.HKWeight_114" "$s" order 194 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_115} set s "$o.HKWeight_115" "$s" order 195 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_116} set s "$o.HKWeight_116" "$s" order 196 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_117} set s "$o.HKWeight_117" "$s" order 197 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_118} set s "$o.HKWeight_118" "$s" order 198 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_119} set s "$o.HKWeight_119" "$s" order 199 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_120} set s "$o.HKWeight_120" "$s" order 200 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_121} set s "$o.HKWeight_121" "$s" order 201 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_122} set s "$o.HKWeight_122" "$s" order 202 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_123} set s "$o.HKWeight_123" "$s" order 203 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_124} set s "$o.HKWeight_124" "$s" order 204 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_125} set s "$o.HKWeight_125" "$s" order 205 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_126} set s "$o.HKWeight_126" "$s" order 206 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_127} set s "$o.HKWeight_127" "$s" order 207 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_128} set s "$o.HKWeight_128" "$s" order 208 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_129} set s "$o.HKWeight_129" "$s" order 209 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_130} set s "$o.HKWeight_130" "$s" order 210 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_131} set s "$o.HKWeight_131" "$s" order 211 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_132} set s "$o.HKWeight_132" "$s" order 212 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_133} set s "$o.HKWeight_133" "$s" order 213 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_134} set s "$o.HKWeight_134" "$s" order 214 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_135} set s "$o.HKWeight_135" "$s" order 215 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_136} set s "$o.HKWeight_136" "$s" order 216 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_137} set s "$o.HKWeight_137" "$s" order 217 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_138} set s "$o.HKWeight_138" "$s" order 218 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_139} set s "$o.HKWeight_139" "$s" order 219 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_140} set s "$o.HKWeight_140" "$s" order 220 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_141} set s "$o.HKWeight_141" "$s" order 221 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_142} set s "$o.HKWeight_142" "$s" order 222 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_143} set s "$o.HKWeight_143" "$s" order 223 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_144} set s "$o.HKWeight_144" "$s" order 224 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_145} set s "$o.HKWeight_145" "$s" order 225 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_146} set s "$o.HKWeight_146" "$s" order 226 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_147} set s "$o.HKWeight_147" "$s" order 227 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_148} set s "$o.HKWeight_148" "$s" order 228 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_149} set s "$o.HKWeight_149" "$s" order 229 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_150} set s "$o.HKWeight_150" "$s" order 230 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_151} set s "$o.HKWeight_151" "$s" order 231 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_152} set s "$o.HKWeight_152" "$s" order 232 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_153} set s "$o.HKWeight_153" "$s" order 233 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_154} set s "$o.HKWeight_154" "$s" order 234 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_155} set s "$o.HKWeight_155" "$s" order 235 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_156} set s "$o.HKWeight_156" "$s" order 236 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_157} set s "$o.HKWeight_157" "$s" order 237 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_158} set s "$o.HKWeight_158" "$s" order 238 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_159} set s "$o.HKWeight_159" "$s" order 239 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_160} set s "$o.HKWeight_160" "$s" order 240 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_161} set s "$o.HKWeight_161" "$s" order 241 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_162} set s "$o.HKWeight_162" "$s" order 242 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_163} set s "$o.HKWeight_163" "$s" order 243 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_164} set s "$o.HKWeight_164" "$s" order 244 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_165} set s "$o.HKWeight_165" "$s" order 245 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_166} set s "$o.HKWeight_166" "$s" order 246 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_167} set s "$o.HKWeight_167" "$s" order 247 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_168} set s "$o.HKWeight_168" "$s" order 248 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_169} set s "$o.HKWeight_169" "$s" order 249 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_170} set s "$o.HKWeight_170" "$s" order 250 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_171} set s "$o.HKWeight_171" "$s" order 251 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_172} set s "$o.HKWeight_172" "$s" order 252 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_173} set s "$o.HKWeight_173" "$s" order 253 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_174} set s "$o.HKWeight_174" "$s" order 254 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_175} set s "$o.HKWeight_175" "$s" order 255 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_176} set s "$o.HKWeight_176" "$s" order 256 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_177} set s "$o.HKWeight_177" "$s" order 257 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_178} set s "$o.HKWeight_178" "$s" order 258 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_179} set s "$o.HKWeight_179" "$s" order 259 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_180} set s "$o.HKWeight_180" "$s" order 260 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_181} set s "$o.HKWeight_181" "$s" order 261 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_182} set s "$o.HKWeight_182" "$s" order 262 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_183} set s "$o.HKWeight_183" "$s" order 263 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_184} set s "$o.HKWeight_184" "$s" order 264 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_185} set s "$o.HKWeight_185" "$s" order 265 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_186} set s "$o.HKWeight_186" "$s" order 266 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_187} set s "$o.HKWeight_187" "$s" order 267 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_188} set s "$o.HKWeight_188" "$s" order 268 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_189} set s "$o.HKWeight_189" "$s" order 269 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_190} set s "$o.HKWeight_190" "$s" order 270 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_191} set s "$o.HKWeight_191" "$s" order 271 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_192} set s "$o.HKWeight_192" "$s" order 272 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_193} set s "$o.HKWeight_193" "$s" order 273 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_194} set s "$o.HKWeight_194" "$s" order 274 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_195} set s "$o.HKWeight_195" "$s" order 275 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_196} set s "$o.HKWeight_196" "$s" order 276 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_197} set s "$o.HKWeight_197" "$s" order 277 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_198} set s "$o.HKWeight_198" "$s" order 278 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_199} set s "$o.HKWeight_199" "$s" order 279 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_200} set s "$o.HKWeight_200" "$s" order 280 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_201} set s "$o.HKWeight_201" "$s" order 281 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_202} set s "$o.HKWeight_202" "$s" order 282 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_203} set s "$o.HKWeight_203" "$s" order 283 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_204} set s "$o.HKWeight_204" "$s" order 284 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_205} set s "$o.HKWeight_205" "$s" order 285 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_206} set s "$o.HKWeight_206" "$s" order 286 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_207} set s "$o.HKWeight_207" "$s" order 287 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_208} set s "$o.HKWeight_208" "$s" order 288 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_209} set s "$o.HKWeight_209" "$s" order 289 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_210} set s "$o.HKWeight_210" "$s" order 290 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_211} set s "$o.HKWeight_211" "$s" order 291 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_212} set s "$o.HKWeight_212" "$s" order 292 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_213} set s "$o.HKWeight_213" "$s" order 293 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_214} set s "$o.HKWeight_214" "$s" order 294 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_215} set s "$o.HKWeight_215" "$s" order 295 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_216} set s "$o.HKWeight_216" "$s" order 296 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_217} set s "$o.HKWeight_217" "$s" order 297 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_218} set s "$o.HKWeight_218" "$s" order 298 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_219} set s "$o.HKWeight_219" "$s" order 299 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_220} set s "$o.HKWeight_220" "$s" order 300 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_221} set s "$o.HKWeight_221" "$s" order 301 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_222} set s "$o.HKWeight_222" "$s" order 302 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_223} set s "$o.HKWeight_223" "$s" order 303 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_224} set s "$o.HKWeight_224" "$s" order 304 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_225} set s "$o.HKWeight_225" "$s" order 305 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_38} set s "$o.HKWeight_38" "$s" order 306 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_39} set s "$o.HKWeight_39" "$s" order 307 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_53} set s "$o.HKWeight_53" "$s" order 308 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Estimate Avg} set s "$o.HK Estimate Avg" "$s" order 309 "$s" units 30 {%f} 2 "$s" value 0.089360875152435418 {MW/cms} "$o" {SeriesSlot} {Spill Required} set s "$o.Spill Required" "$s" order 310 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Estimate Avg} set s "$o.Turbine Release Estimate Avg" "$s" order 311 "$s" units 15 {%f} 2 "$s" value 4056.7603211647365 {cms} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Max Available Storage} set s "$o.Max Available Storage" "$s" order 308 "$s" units 8 {%f} 2 "$s" value 14434795.71873793 {m3} "$o" {SeriesSlot} {Active Storage} set s "$o.Active Storage" "$s" order 309 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 14434795.718737939 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elev Ramp Limit Down} set s "$o.Pool Elev Ramp Limit Down" "$s" order 310 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {ScalarSlot} {Pool Elev Ramp Limit Up} set s "$o.Pool Elev Ramp Limit Up" "$s" order 311 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 312 "$s" userDescript {2016-09-29 DMI data loads these value from EAS Account
4912 - RIS_DESIRED_ELEVATION_FT} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 186.6900000000002 @ 169 "$o" {SeriesSlot} {Draft Feet} set s "$o.Draft Feet" "$s" order 313 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax 0 1.2192000000000014 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Percent} set s "$o.Draft Percent" "$s" order 314 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume} set s "$o.Draft Volume" "$s" order 315 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 75262780.219945058 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 316 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 317 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 318 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 319 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 320 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 321 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 322 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 323 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Ramp Limit Down} set s "$o.Outflow Ramp Limit Down" "$s" order 324 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {ScalarSlot} {Outflow Ramp Limit Up} set s "$o.Outflow Ramp Limit Up" "$s" order 325 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 326 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spill Reduced Bound} set s "$o.Spill Reduced Bound" "$s" order 326 "$s" units 15 {%f} 2 "$s" value 2123.7634943999992 {cms} "$o" {PeriodicSlot} {Spring Fish Spill Default Shape} set s "$o.Spring Fish Spill Default Shape" "$s" order 327 "$s" userDescript {This slot contains a set of multipliers to calculate the RIS fish spill based on the estimated outflow for each day. It gets used as a back-up default calculation during fish spill season if the Fish Spill Manual gets imported as 0 kcfs (i.e. Central did not receive a spill signal from Chelan).

These shape values are based on an overall daily spill percent of 10% of total outflow.

The shape values are based on the document 'Blocks of spring and summer fish spill at RR and RI.docx' provided by Scott Buehn, 1/12/17. This matches updated tables provided in Spill shape info for Scott.xlsx (04/0/2017).} "$s" resize 24 1 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 0.125 "$s" row 1 0.125 "$s" row 2 0.125 "$s" row 3 0.125 "$s" row 4 0.125 "$s" row 5 0.10000000000000001 "$s" row 6 0.10000000000000001 "$s" row 7 0.10000000000000001 "$s" row 8 0.059999999999999998 "$s" row 9 0.059999999999999998 "$s" row 10 0.059999999999999998 "$s" row 11 0.059999999999999998 "$s" row 12 0.059999999999999998 "$s" row 13 0.10000000000000001 "$s" row 14 0.10000000000000001 "$s" row 15 0.10000000000000001 "$s" row 16 0.10000000000000001 "$s" row 17 0.10000000000000001 "$s" row 18 0.10000000000000001 "$s" row 19 0.10000000000000001 "$s" row 20 0.10000000000000001 "$s" row 21 0.125 "$s" row 22 0.125 "$s" row 23 0.125 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Reg 1 DAY 1900 1 HOUR "$o" {PeriodicSlot} {Summer Fish Spill Default Shape} set s "$o.Summer Fish Spill Default Shape" "$s" order 31 "$s" userDescript {This slot contains a set of multipliers to calculate the RIS fish spill based on the estimated outflow for each day. It gets used as a back-up default calculation during fish spill season if the Fish Spill Manual gets imported as 0 kcfs (i.e. Central did not receive a spill signal from Chelan).

These shape values are based on an overall daily spill percent of 20% of total outflow.

The shape values are based on the document 'Blocks of spring and summer fish spill at RR and RI.docx' provided by Scott Buehn, 1/12/17. This matches updated tables provided in Spill shape info for Scott.xlsx (04/0/2017).} "$s" resize 24 1 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 0.23000000000000001 "$s" row 1 0.23000000000000001 "$s" row 2 0.19 "$s" row 3 0.14999999999999999 "$s" row 4 0.14999999999999999 "$s" row 5 0.14999999999999999 "$s" row 6 0.14999999999999999 "$s" row 7 0.14999999999999999 "$s" row 8 0.14999999999999999 "$s" row 9 0.14999999999999999 "$s" row 10 0.14999999999999999 "$s" row 11 0.19 "$s" row 12 0.23000000000000001 "$s" row 13 0.23000000000000001 "$s" row 14 0.23000000000000001 "$s" row 15 0.23000000000000001 "$s" row 16 0.23000000000000001 "$s" row 17 0.23000000000000001 "$s" row 18 0.23000000000000001 "$s" row 19 0.23000000000000001 "$s" row 20 0.23000000000000001 "$s" row 21 0.23000000000000001 "$s" row 22 0.23000000000000001 "$s" row 23 0.23000000000000001 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Reg 1 DAY 1900 1 HOUR "$o" {SeriesSlot} {Fish Spill Default} set s "$o.Fish Spill Default" "$s" order 329 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Content Available} set s "$o.Content Available" "$s" order 332 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Coefficient Approximation Default} set s "$o.Power Coefficient Approximation Default" "$s" order 13 "$s" computedByExpr 2 {"PowerCoeffApproxDefault"( % "Grand Coulee" )} "$s" units 31 {%f} 2 "$s" value 0.77449998403386888 {MW/cms} "$o" SlotGroup {Special Operations Hard Constraints} set sg "$o.Special Operations Hard Constraints" "$sg" SlotGroup Order 73 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Spill} "$o" SlotGroup {Pool Elev Margin} set sg "$o.Pool Elev Margin" "$sg" SlotGroup Order 51 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation Margin} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max Margin Default} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Max with Margin} "$sg" SlotGroup LocalSlot 3 {Pool Elevation Min Margin Default} "$sg" SlotGroup LocalSlot 4 {Pool Elevation Min with Margin} "$sg" SlotGroup LocalSlot 5 {Elevation Max Controlling} "$sg" SlotGroup LocalSlot 6 {Elevation Min Controlling} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Min Margin} "$sg" SlotGroup LocalSlot 8 {Pool Elevation Max Margin} "$o" SlotGroup {Efficiency Objective} set sg "$o.Efficiency Objective" "$sg" SlotGroup Order 38 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Shifted Operating Head} "$sg" SlotGroup LocalSlot 1 {Shifted Turbine Release} "$sg" SlotGroup LocalSlot 2 {Efficiency} "$sg" SlotGroup LocalSlot 3 {Efficiency Estimate} "$sg" SlotGroup LocalSlot 4 {Max Efficiency Turbine Release} "$sg" SlotGroup LocalSlot 5 {Max Efficiency Operating Head} "$sg" SlotGroup LocalSlot 6 {cos Efficiency Theta} "$sg" SlotGroup LocalSlot 7 {sin Efficiency Theta} "$sg" SlotGroup LocalSlot 8 {Max Efficiency} "$o" SlotGroup {Special Operations Soft Constraints} set sg "$o.Special Operations Soft Constraints" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Soft Max Spill} "$o" SlotGroup {Spill Slots} set sg "$o.Spill Slots" "$sg" SlotGroup Order 289 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Spring Fish Spill Percent Default} "$sg" SlotGroup LocalSlot 2 {Spring Fish Spill Season Default} "$sg" SlotGroup LocalSlot 3 {Summer Fish Spill Percent Default} "$sg" SlotGroup LocalSlot 4 {Summer Fish Spill Season Default} "$sg" SlotGroup LocalSlot 5 {Spill As Energy} "$sg" SlotGroup LocalSlot 6 {Spill Reduced Bound} "$sg" SlotGroup LocalSlot 7 {Spring Fish Spill Default Shape} "$sg" SlotGroup LocalSlot 8 {Summer Fish Spill Default Shape} "$sg" SlotGroup LocalSlot 9 {Fish Spill Default} "$sg" SlotGroup LocalSlot 10 {Spring Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 11 {Summer Fish Spill Season Operations} "$o" SlotGroup {HK Objective} set sg "$o.HK Objective" "$sg" SlotGroup Order 257 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HK Operating Head Count} "$sg" SlotGroup LocalSlot 1 {HK Table Operating Head} "$sg" SlotGroup LocalSlot 2 {HK Table Turbine Release} "$sg" SlotGroup LocalSlot 3 {HK Turbine Release Count} "$sg" SlotGroup LocalSlot 4 {HK Table} "$sg" SlotGroup LocalSlot 5 {HK Count} "$sg" SlotGroup LocalSlot 6 {HK Table 3D} "$sg" SlotGroup LocalSlot 7 {HK} "$sg" SlotGroup LocalSlot 8 {Spill Required} "$o" SlotGroup {HK Weights} set sg "$o.HK Weights" "$sg" SlotGroup Order 249 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HKWeight_0} "$sg" SlotGroup LocalSlot 1 {HKWeight_1} "$sg" SlotGroup LocalSlot 2 {HKWeight_10} "$sg" SlotGroup LocalSlot 3 {HKWeight_11} "$sg" SlotGroup LocalSlot 4 {HKWeight_12} "$sg" SlotGroup LocalSlot 5 {HKWeight_13} "$sg" SlotGroup LocalSlot 6 {HKWeight_14} "$sg" SlotGroup LocalSlot 7 {HKWeight_15} "$sg" SlotGroup LocalSlot 8 {HKWeight_16} "$sg" SlotGroup LocalSlot 9 {HKWeight_17} "$sg" SlotGroup LocalSlot 10 {HKWeight_18} "$sg" SlotGroup LocalSlot 11 {HKWeight_19} "$sg" SlotGroup LocalSlot 12 {HKWeight_2} "$sg" SlotGroup LocalSlot 13 {HKWeight_20} "$sg" SlotGroup LocalSlot 14 {HKWeight_21} "$sg" SlotGroup LocalSlot 15 {HKWeight_22} "$sg" SlotGroup LocalSlot 16 {HKWeight_23} "$sg" SlotGroup LocalSlot 17 {HKWeight_24} "$sg" SlotGroup LocalSlot 18 {HKWeight_25} "$sg" SlotGroup LocalSlot 19 {HKWeight_3} "$sg" SlotGroup LocalSlot 20 {HKWeight_4} "$sg" SlotGroup LocalSlot 21 {HKWeight_5} "$sg" SlotGroup LocalSlot 22 {HKWeight_6} "$sg" SlotGroup LocalSlot 23 {HKWeight_7} "$sg" SlotGroup LocalSlot 24 {HKWeight_8} "$sg" SlotGroup LocalSlot 25 {HKWeight_9} "$sg" SlotGroup LocalSlot 26 {HKWeight_26} "$sg" SlotGroup LocalSlot 27 {HKWeight_27} "$sg" SlotGroup LocalSlot 28 {HKWeight_28} "$sg" SlotGroup LocalSlot 29 {HKWeight_29} "$sg" SlotGroup LocalSlot 30 {HKWeight_30} "$sg" SlotGroup LocalSlot 31 {HKWeight_31} "$sg" SlotGroup LocalSlot 32 {HKWeight_32} "$sg" SlotGroup LocalSlot 33 {HKWeight_33} "$sg" SlotGroup LocalSlot 34 {HKWeight_34} "$sg" SlotGroup LocalSlot 35 {HKWeight_35} "$sg" SlotGroup LocalSlot 36 {HKWeight_36} "$sg" SlotGroup LocalSlot 37 {HKWeight_37} "$sg" SlotGroup LocalSlot 38 {HKWeight_40} "$sg" SlotGroup LocalSlot 39 {HKWeight_41} "$sg" SlotGroup LocalSlot 40 {HKWeight_42} "$sg" SlotGroup LocalSlot 41 {HKWeight_43} "$sg" SlotGroup LocalSlot 42 {HKWeight_44} "$sg" SlotGroup LocalSlot 43 {HKWeight_45} "$sg" SlotGroup LocalSlot 44 {HKWeight_46} "$sg" SlotGroup LocalSlot 45 {HKWeight_47} "$sg" SlotGroup LocalSlot 46 {HKWeight_48} "$sg" SlotGroup LocalSlot 47 {HKWeight_49} "$sg" SlotGroup LocalSlot 48 {HKWeight_50} "$sg" SlotGroup LocalSlot 49 {HKWeight_51} "$sg" SlotGroup LocalSlot 50 {HKWeight_52} "$sg" SlotGroup LocalSlot 51 {HKWeight_54} "$sg" SlotGroup LocalSlot 52 {HKWeight_55} "$sg" SlotGroup LocalSlot 53 {HKWeight_56} "$sg" SlotGroup LocalSlot 54 {HKWeight_57} "$sg" SlotGroup LocalSlot 55 {HKWeight_58} "$sg" SlotGroup LocalSlot 56 {HKWeight_59} "$sg" SlotGroup LocalSlot 57 {HKWeight_60} "$sg" SlotGroup LocalSlot 58 {HKWeight_61} "$sg" SlotGroup LocalSlot 59 {HKWeight_62} "$sg" SlotGroup LocalSlot 60 {HKWeight_63} "$sg" SlotGroup LocalSlot 61 {HKWeight_64} "$sg" SlotGroup LocalSlot 62 {HKWeight_65} "$sg" SlotGroup LocalSlot 63 {HKWeight_66} "$sg" SlotGroup LocalSlot 64 {HKWeight_67} "$sg" SlotGroup LocalSlot 65 {HKWeight_68} "$sg" SlotGroup LocalSlot 66 {HKWeight_69} "$sg" SlotGroup LocalSlot 67 {HKWeight_70} "$sg" SlotGroup LocalSlot 68 {HKWeight_71} "$sg" SlotGroup LocalSlot 69 {HKWeight_72} "$sg" SlotGroup LocalSlot 70 {HKWeight_73} "$sg" SlotGroup LocalSlot 71 {HKWeight_74} "$sg" SlotGroup LocalSlot 72 {HKWeight_75} "$sg" SlotGroup LocalSlot 73 {HKWeight_100} "$sg" SlotGroup LocalSlot 74 {HKWeight_76} "$sg" SlotGroup LocalSlot 75 {HKWeight_77} "$sg" SlotGroup LocalSlot 76 {HKWeight_78} "$sg" SlotGroup LocalSlot 77 {HKWeight_79} "$sg" SlotGroup LocalSlot 78 {HKWeight_80} "$sg" SlotGroup LocalSlot 79 {HKWeight_81} "$sg" SlotGroup LocalSlot 80 {HKWeight_82} "$sg" SlotGroup LocalSlot 81 {HKWeight_83} "$sg" SlotGroup LocalSlot 82 {HKWeight_84} "$sg" SlotGroup LocalSlot 83 {HKWeight_85} "$sg" SlotGroup LocalSlot 84 {HKWeight_86} "$sg" SlotGroup LocalSlot 85 {HKWeight_87} "$sg" SlotGroup LocalSlot 86 {HKWeight_88} "$sg" SlotGroup LocalSlot 87 {HKWeight_89} "$sg" SlotGroup LocalSlot 88 {HKWeight_90} "$sg" SlotGroup LocalSlot 89 {HKWeight_91} "$sg" SlotGroup LocalSlot 90 {HKWeight_92} "$sg" SlotGroup LocalSlot 91 {HKWeight_93} "$sg" SlotGroup LocalSlot 92 {HKWeight_94} "$sg" SlotGroup LocalSlot 93 {HKWeight_95} "$sg" SlotGroup LocalSlot 94 {HKWeight_96} "$sg" SlotGroup LocalSlot 95 {HKWeight_97} "$sg" SlotGroup LocalSlot 96 {HKWeight_98} "$sg" SlotGroup LocalSlot 97 {HKWeight_99} "$sg" SlotGroup LocalSlot 98 {HKWeight_101} "$sg" SlotGroup LocalSlot 99 {HKWeight_102} "$sg" SlotGroup LocalSlot 100 {HKWeight_103} "$sg" SlotGroup LocalSlot 101 {HKWeight_104} "$sg" SlotGroup LocalSlot 102 {HKWeight_105} "$sg" SlotGroup LocalSlot 103 {HKWeight_106} "$sg" SlotGroup LocalSlot 104 {HKWeight_107} "$sg" SlotGroup LocalSlot 105 {HKWeight_108} "$sg" SlotGroup LocalSlot 106 {HKWeight_109} "$sg" SlotGroup LocalSlot 107 {HKWeight_110} "$sg" SlotGroup LocalSlot 108 {HKWeight_111} "$sg" SlotGroup LocalSlot 109 {HKWeight_112} "$sg" SlotGroup LocalSlot 110 {HKWeight_113} "$sg" SlotGroup LocalSlot 111 {HKWeight_114} "$sg" SlotGroup LocalSlot 112 {HKWeight_115} "$sg" SlotGroup LocalSlot 113 {HKWeight_116} "$sg" SlotGroup LocalSlot 114 {HKWeight_117} "$sg" SlotGroup LocalSlot 115 {HKWeight_118} "$sg" SlotGroup LocalSlot 116 {HKWeight_119} "$sg" SlotGroup LocalSlot 117 {HKWeight_120} "$sg" SlotGroup LocalSlot 118 {HKWeight_121} "$sg" SlotGroup LocalSlot 119 {HKWeight_122} "$sg" SlotGroup LocalSlot 120 {HKWeight_123} "$sg" SlotGroup LocalSlot 121 {HKWeight_124} "$sg" SlotGroup LocalSlot 122 {HKWeight_125} "$sg" SlotGroup LocalSlot 123 {HKWeight_126} "$sg" SlotGroup LocalSlot 124 {HKWeight_127} "$sg" SlotGroup LocalSlot 125 {HKWeight_128} "$sg" SlotGroup LocalSlot 126 {HKWeight_129} "$sg" SlotGroup LocalSlot 127 {HKWeight_130} "$sg" SlotGroup LocalSlot 128 {HKWeight_131} "$sg" SlotGroup LocalSlot 129 {HKWeight_132} "$sg" SlotGroup LocalSlot 130 {HKWeight_133} "$sg" SlotGroup LocalSlot 131 {HKWeight_134} "$sg" SlotGroup LocalSlot 132 {HKWeight_135} "$sg" SlotGroup LocalSlot 133 {HKWeight_136} "$sg" SlotGroup LocalSlot 134 {HKWeight_137} "$sg" SlotGroup LocalSlot 135 {HKWeight_138} "$sg" SlotGroup LocalSlot 136 {HKWeight_139} "$sg" SlotGroup LocalSlot 137 {HKWeight_140} "$sg" SlotGroup LocalSlot 138 {HKWeight_141} "$sg" SlotGroup LocalSlot 139 {HKWeight_142} "$sg" SlotGroup LocalSlot 140 {HKWeight_143} "$sg" SlotGroup LocalSlot 141 {HKWeight_144} "$sg" SlotGroup LocalSlot 142 {HKWeight_145} "$sg" SlotGroup LocalSlot 143 {HKWeight_146} "$sg" SlotGroup LocalSlot 144 {HKWeight_147} "$sg" SlotGroup LocalSlot 145 {HKWeight_148} "$sg" SlotGroup LocalSlot 146 {HKWeight_149} "$sg" SlotGroup LocalSlot 147 {HKWeight_150} "$sg" SlotGroup LocalSlot 148 {HKWeight_151} "$sg" SlotGroup LocalSlot 149 {HKWeight_152} "$sg" SlotGroup LocalSlot 150 {HKWeight_153} "$sg" SlotGroup LocalSlot 151 {HKWeight_154} "$sg" SlotGroup LocalSlot 152 {HKWeight_155} "$sg" SlotGroup LocalSlot 153 {HKWeight_156} "$sg" SlotGroup LocalSlot 154 {HKWeight_157} "$sg" SlotGroup LocalSlot 155 {HKWeight_158} "$sg" SlotGroup LocalSlot 156 {HKWeight_159} "$sg" SlotGroup LocalSlot 157 {HKWeight_160} "$sg" SlotGroup LocalSlot 158 {HKWeight_161} "$sg" SlotGroup LocalSlot 159 {HKWeight_162} "$sg" SlotGroup LocalSlot 160 {HKWeight_163} "$sg" SlotGroup LocalSlot 161 {HKWeight_164} "$sg" SlotGroup LocalSlot 162 {HKWeight_165} "$sg" SlotGroup LocalSlot 163 {HKWeight_166} "$sg" SlotGroup LocalSlot 164 {HKWeight_167} "$sg" SlotGroup LocalSlot 165 {HKWeight_168} "$sg" SlotGroup LocalSlot 166 {HKWeight_169} "$sg" SlotGroup LocalSlot 167 {HKWeight_170} "$sg" SlotGroup LocalSlot 168 {HKWeight_171} "$sg" SlotGroup LocalSlot 169 {HKWeight_172} "$sg" SlotGroup LocalSlot 170 {HKWeight_173} "$sg" SlotGroup LocalSlot 171 {HKWeight_174} "$sg" SlotGroup LocalSlot 172 {HKWeight_175} "$sg" SlotGroup LocalSlot 173 {HKWeight_176} "$sg" SlotGroup LocalSlot 174 {HKWeight_177} "$sg" SlotGroup LocalSlot 175 {HKWeight_178} "$sg" SlotGroup LocalSlot 176 {HKWeight_179} "$sg" SlotGroup LocalSlot 177 {HKWeight_180} "$sg" SlotGroup LocalSlot 178 {HKWeight_181} "$sg" SlotGroup LocalSlot 179 {HKWeight_182} "$sg" SlotGroup LocalSlot 180 {HKWeight_183} "$sg" SlotGroup LocalSlot 181 {HKWeight_184} "$sg" SlotGroup LocalSlot 182 {HKWeight_185} "$sg" SlotGroup LocalSlot 183 {HKWeight_186} "$sg" SlotGroup LocalSlot 184 {HKWeight_187} "$sg" SlotGroup LocalSlot 185 {HKWeight_188} "$sg" SlotGroup LocalSlot 186 {HKWeight_189} "$sg" SlotGroup LocalSlot 187 {HKWeight_190} "$sg" SlotGroup LocalSlot 188 {HKWeight_191} "$sg" SlotGroup LocalSlot 189 {HKWeight_192} "$sg" SlotGroup LocalSlot 190 {HKWeight_193} "$sg" SlotGroup LocalSlot 191 {HKWeight_194} "$sg" SlotGroup LocalSlot 192 {HKWeight_195} "$sg" SlotGroup LocalSlot 193 {HKWeight_196} "$sg" SlotGroup LocalSlot 194 {HKWeight_197} "$sg" SlotGroup LocalSlot 195 {HKWeight_198} "$sg" SlotGroup LocalSlot 196 {HKWeight_199} "$sg" SlotGroup LocalSlot 197 {HKWeight_200} "$sg" SlotGroup LocalSlot 198 {HKWeight_201} "$sg" SlotGroup LocalSlot 199 {HKWeight_202} "$sg" SlotGroup LocalSlot 200 {HKWeight_203} "$sg" SlotGroup LocalSlot 201 {HKWeight_204} "$sg" SlotGroup LocalSlot 202 {HKWeight_205} "$sg" SlotGroup LocalSlot 203 {HKWeight_206} "$sg" SlotGroup LocalSlot 204 {HKWeight_207} "$sg" SlotGroup LocalSlot 205 {HKWeight_208} "$sg" SlotGroup LocalSlot 206 {HKWeight_209} "$sg" SlotGroup LocalSlot 207 {HKWeight_210} "$sg" SlotGroup LocalSlot 208 {HKWeight_211} "$sg" SlotGroup LocalSlot 209 {HKWeight_212} "$sg" SlotGroup LocalSlot 210 {HKWeight_213} "$sg" SlotGroup LocalSlot 211 {HKWeight_214} "$sg" SlotGroup LocalSlot 212 {HKWeight_215} "$sg" SlotGroup LocalSlot 213 {HKWeight_216} "$sg" SlotGroup LocalSlot 214 {HKWeight_217} "$sg" SlotGroup LocalSlot 215 {HKWeight_218} "$sg" SlotGroup LocalSlot 216 {HKWeight_219} "$sg" SlotGroup LocalSlot 217 {HKWeight_220} "$sg" SlotGroup LocalSlot 218 {HKWeight_221} "$sg" SlotGroup LocalSlot 219 {HKWeight_222} "$sg" SlotGroup LocalSlot 220 {HKWeight_223} "$sg" SlotGroup LocalSlot 221 {HKWeight_224} "$sg" SlotGroup LocalSlot 222 {HKWeight_225} "$sg" SlotGroup LocalSlot 223 {HKWeight_38} "$sg" SlotGroup LocalSlot 224 {HKWeight_39} "$sg" SlotGroup LocalSlot 225 {HKWeight_53} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 33 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Tailwater Elevation Baseline} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$sg" SlotGroup LocalSlot 3 {Power Coefficient Approximation Default} "$o" SlotGroup {Estimates} set sg "$o.Estimates" "$sg" SlotGroup Order 500 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Tailwater Estimate Avg} "$sg" SlotGroup LocalSlot 1 {HK Estimate Avg} "$sg" SlotGroup LocalSlot 2 {Outflow Estimate Avg} "$sg" SlotGroup LocalSlot 3 {Turbine Release Estimate Avg} "$sg" SlotGroup LocalSlot 4 {Operating Head Estimate Avg} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Estimate Avg} "$sg" SlotGroup LocalSlot 6 {Pool Elevation Estimate} "$sg" SlotGroup LocalSlot 7 {Turbine Release Estimate} "$sg" SlotGroup LocalSlot 8 {Operating Head Estimate} "$sg" SlotGroup LocalSlot 9 {Tailwater Estimate} "$sg" SlotGroup LocalSlot 10 {HK Estimate} "$sg" SlotGroup LocalSlot 11 {Outflow Estimate} "$sg" SlotGroup LocalSlot 12 {Inflow Estimate} "$o" hideSlots 18 hideOn hideEmptyOff "$o" hids {Desired Operating Elevation} "$o" hids {Fish Bypass} "$o" hids {Fish Ladder} "$o" hids {Minimum Generation Default} "$o" hids {Minimum Generation Manual} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Spring Fish Spill Percent Default} "$o" hids {Spring Fish Spill Percent Manual} "$o" hids {Summer Fish Spill Percent Default} "$o" hids {Summer Fish Spill Percent Manual} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Allowable Curvature Scalar} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {RRH to RIS} set o "$ws.RRH to RIS" $ws SimObj $obj {Reach} 176 1132 {} 703 1455 405 646 "$o" geospatialCoords 0 0 405 646 "$o" objAttributes { \ } "$o" objOrd wsList 5034 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 169 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 5456.6563382783979 5584.0821479423985 5666.2010030591982 6048.4784320511981 5802.1218667007988 5397.1909604351986 5765.3099661311981 5470.8147615743983 5663.3693183999985 5561.428670668799 5538.7751933951986 5569.9237246463981 4915.8045683711989 5380.2008524799985 5708.6762729471984 5434.0028610047984 5569.9237246463981 5623.725733171198 5343.3889519103986 5000.7551081471984 4706.2599035903986 4825.1906592767991 5255.6067274751986 5170.6561876991982 5091.3690172415991 5581.2504632831988 5544.4385627135989 5533.1118240767983 5516.1217161215991 5547.2702473727986 5513.2900314623985 5657.7059490815991 5385.8642217983979 5196.1413496319983 5023.4085854207988 5006.4184774655987 4655.2895797247993 4808.2005513215991 5762.4782814719983 5632.220787148799 5527.4484547583979 5643.5475257855987 5603.9039405567983 5838.9337672703978 6020.1615854591982 6006.0031621631979 6164.577503078398 5391.5275911167992 5844.597136588799 5734.1614348799985 5620.8940485119983 5943.7060996607988 5887.0724064767983 @ 2 6039.9833780735989 5790.7951280639982 5564.2603553279987 5601.0722558975986 5677.5277416959989 5629.3891024895993 5524.6167700991982 5470.8147615743983 5626.5574178303978 5578.4187786239982 5623.725733171198 5674.6960570367983 5649.2108951039982 5632.220787148799 5674.6960570367983 5646.3792104447984 5473.6464462335989 5603.9039405567983 5394.3592757759989 5626.5574178303978 5524.6167700991982 5501.9632928255987 5530.2801394175985 5510.4583468031988 5569.9237246463981 5603.9039405567983 5615.2306791935989 5632.220787148799 @ 2 6054.1418013695984 5722.8346962431988 5635.0524718079987 5541.6068780543983 5513.2900314623985 5235.7849348607988 5484.9731848703987 5388.6959064575985 5490.636554188799 @ 2 5470.8147615743983 5465.1513922559989 5516.1217161215991 5338.3570482710002 NaN @ 72 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.75 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {RIS to WAN} set o "$ws.RIS to WAN" $ws SimObj $obj {Reach} 239 947 {} 727 1274 429 465 "$o" geospatialCoords 0 0 429 465 "$o" objAttributes { \ } "$o" objOrd wsList 5035 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 169 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 5541.6068780543983 5467.9830769151986 5567.0920399871984 5612.3989945343983 5827.6070286335989 5677.5277416959989 5499.1316081663981 5649.2108951039982 5436.8345456639981 5606.7356252159989 5499.1316081663981 5504.7949774847984 5487.8048695295993 5082.873963263999 5385.8642217983979 5586.9138326015991 5487.8048695295993 5569.9237246463981 5595.4088865791982 5414.1810683903987 5085.7056479231987 4912.9728837119983 4932.7946763263981 5249.9433581567991 5196.1413496319983 5164.9928183807988 5465.1513922559989 5501.9632928255987 5380.2008524799985 5473.6464462335989 5499.1316081663981 5456.6563382783979 5558.5969860095993 5371.7057985023985 5238.6166195199985 5014.9135314431987 4989.4283695103986 4629.8044177919992 4910.1411990527986 5484.9731848703987 5533.1118240767983 5470.8147615743983 5530.2801394175985 5640.7158411263981 5768.1416507903978 5824.7753439743983 5796.4584973823985 5830.4387132927986 5561.428670668799 5802.1218667007988 5575.5870939647984 5569.9237246463981 5720.0030115839982 5700.1812189695984 5745.4881735167983 5793.6268127231979 5671.8643723775986 5541.6068780543983 5459.4880229375985 5487.8048695295993 5499.1316081663981 5456.6563382783979 5467.9830769151986 5535.9435087359989 5462.3197075967992 5439.6662303231988 5476.4781308927986 5535.9435087359989 5473.6464462335989 5575.5870939647984 5567.0920399871984 5521.7850854399985 5640.7158411263981 5462.3197075967992 5581.2504632831988 5558.5969860095993 5552.933616691198 @ 2 5493.4682388479987 5507.6266621439981 5535.9435087359989 5541.6068780543983 5564.2603553279987 5530.2801394175985 5892.7357757951986 5759.6465968127986 5606.7356252159989 5575.5870939647984 5533.1118240767983 5334.8938979327986 5504.7949774847984 5493.4682388479987 5479.3098155519983 5510.4583468031988 5490.636554188799 5507.6266621439981 5483.3477978760175 NaN @ 72 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 1.5 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {Wanapum Constraints} set o "$ws.Wanapum Constraints" $ws SimObj $obj {DataObj} 199 847 {} 1563 2572 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5036 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Minimum Generation Manual} set s "$o.Minimum Generation Manual" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 13 "$s" units 3 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 12 "$s" units 3 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Fall Fish Spill Default} set s "$o.Fall Fish Spill Default" "$s" order 8 "$s" units 18 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {ScalarSlot} {Summer Fish Spill Default} set s "$o.Summer Fish Spill Default" "$s" order 39 "$s" units 18 {%f} 2 "$s" value 566.33693183999992 {cms} "$o" {ScalarSlot} {Recreation Weekend Min Elevation} set s "$o.Recreation Weekend Min Elevation" "$s" order 24 "$s" units 3 {%f} 2 "$s" value 172.97400000000019 {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 146.30400000000014 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 158.49600000000018 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Recreation Weekend} set s "$o.Recreation Weekend" "$s" order 23 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Summer Fish Spill Season Default} set s "$o.Summer Fish Spill Season Default" "$s" order 41 "$s" userDescript {Sets the default active season for Summer Fish Spill from April 15 through August 20 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Summer Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135219600.5 "$s" row 1 146275200.5 "$o" {TableSlot} {Summer Fish Spill Season Operations} set s "$o.Summer Fish Spill Season Operations" "$s" order 42 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135478800.5 "$s" row 1 146275200.5 "$o" {TableSlot} {Fall Fish Spill Season Default} set s "$o.Fall Fish Spill Season Default" "$s" order 10 "$s" userDescript {Sets the default active season for Fall Fish Spill from August 21 through November 15 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Fall Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 146278800.5 "$s" row 1 153792000.5 "$o" {TableSlot} {Fall Fish Spill Season Operations} set s "$o.Fall Fish Spill Season Operations" "$s" order 11 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {ScalarSlot} {Fall Fish Spill Manual} set s "$o.Fall Fish Spill Manual" "$s" order 9 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Summer Fish Spill Manual} set s "$o.Summer Fish Spill Manual" "$s" order 40 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {CJAD Draft Max} set s "$o.CJAD Draft Max" "$s" order 0 "$s" units 10 {%f} 2 "$s" value 33862644.363350071 {m3} "$o" {SeriesSlot} {CJAD Required Draft Volume} set s "$o.CJAD Required Draft Volume" "$s" order 5 "$s" computedByExpr 2 {IF ( $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraft"( % "Wanapum", @"t" ), $ "Wanapum Constraints.CJAD Draft Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" userDescript {This slot calculates the volume that Wanapum is required to draft to make up its portion of the outlfow shortage from CJAD in accordance with the Hanford Reach Agreement D.6(a)(i) based on the actual CJAD quantity and the amount that Priest Rapids is already drafting.} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {CJAD II Draft1 Max} set s "$o.CJAD II Draft1 Max" "$s" order 1 "$s" units 10 {%f} 2 "$s" value 17156611.013160985 {m3} "$o" {ScalarSlot} {CJAD II Draft2 Max} set s "$o.CJAD II Draft2 Max" "$s" order 2 "$s" units 10 {%f} 2 "$s" value 17156611.013160985 {m3} "$o" {SeriesSlot} {CJAD II Required Draft1 Volume} set s "$o.CJAD II Required Draft1 Volume" "$s" order 3 "$s" computedByExpr 2 {IF ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] * ( $ "Wanapum Constraints.CJAD II Draft1 Max" [] / ( $ "Priest Rapids Constraints.CJAD II Draft1 Max" [] + $ "Wanapum Constraints.CJAD II Draft1 Max" [] ) ), $ "Wanapum Constraints.CJAD II Draft1 Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD II Required Draft2 Volume} set s "$o.CJAD II Required Draft2 Volume" "$s" order 4 "$s" computedByExpr 2 {IF ( $ "Wells Constraints.CJAD II Required Draft Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [@"t"] - $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] - $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [@"t"] - $ "Wells Constraints.CJAD II Required Draft Volume" [@"t"] ) * ( $ "Wanapum Constraints.CJAD II Draft2 Max" [] / ( $ "Priest Rapids Constraints.CJAD II Draft2 Max" [] + $ "Wanapum Constraints.CJAD II Draft2 Max" [] ) ), $ "Wanapum Constraints.CJAD II Draft2 Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Minimum Generation Default} set s "$o.Minimum Generation Default" "$s" order 14 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 38 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Wanapum", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Desired Operating Elevation} set s "$o.Desired Operating Elevation" "$s" order 6 "$s" computedByExpr 3 {IF ( "ResNameFromDataObj"( ThisObject ) & "Turbine Release" [@"t"] >= "TableInterpolation"( "ResNameFromDataObj"( ThisObject ) & "Auto Max Turbine Q", 0.00000000, 1.00000000, "ResNameFromDataObj"( ThisObject ) & "Operating Head" [@"t"], @"t" ) )\ THEN\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"] - 1.00000000 "ft"\ ELSE\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 45 "$s" units 15 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 52 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 51 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Allowable Curvature Scalar} set s "$o.Turbine Release Allowable Curvature Scalar" "$s" order 44 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 4077.6259092479991 {cms} "$o" {SeriesSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 43 "$s" computedByExpr 2 {IF ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) < 24.00000000 "hr" AND @"t" != @"24:00:00" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) ) / 1.00000000 "hr" )\ ELSE\ IF ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) < 24.00000000 "hr" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) ) / 1.00000000 "hr" )\ ELSE\ ThisObject & "Turbine Release Curvature Parameter" [] * 24.00000000\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Percent Full} set s "$o.Percent Full" "$s" order 45 "$s" computedByExpr 3 {1.00000000 - "RelativeDraft"( "ResNameFromDataObj"( ThisObject ), @"t" )} "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pond Limits Adjustment} set s "$o.Pond Limits Adjustment" "$s" order 54 "$s" units 2 {%f} 2 "$s" value 0 {m} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 52 "$s" units 2 {%f} 2 "$s" value 0.15240000000000017 {m} "$o" {ScalarSlot} {Pool Elevation Max Margin Default} set s "$o.Pool Elevation Max Margin Default" "$s" order 48 "$s" units 2 {%f} 2 "$s" value 0.06096000000000007 {m} "$o" {SeriesSlot} {Pool Elevation Max with Margin} set s "$o.Pool Elevation Max with Margin" "$s" order 34 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Max Pool Elevation", @"t" ) )\ THEN\ "Min"( ThisObject & "License Max Pool Elevation" [], ThisObject & "Special Operations Max Pool Elevation" [] )\ ELSE\ ThisObject & "License Max Pool Elevation" []\ ENDIF - ThisObject & "Pool Elevation Max Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pool Elevation Min Margin Default} set s "$o.Pool Elevation Min Margin Default" "$s" order 49 "$s" units 2 {%f} 2 "$s" value 0.076200000000000087 {m} "$o" {SeriesSlot} {Pool Elevation Min with Margin} set s "$o.Pool Elevation Min with Margin" "$s" order 33 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Min Pool Elevation", @"t" ) )\ THEN\ "Max"( ThisObject & "License Min Pool Elevation" [], ThisObject & "Special Operations Min Pool Elevation" [] )\ ELSE\ ThisObject & "License Min Pool Elevation" []\ ENDIF + ThisObject & "Pool Elevation Min Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Max Controlling} set s "$o.Elevation Max Controlling" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Elevation Min Controlling} set s "$o.Elevation Min Controlling" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Min Margin} set s "$o.Pool Elevation Min Margin" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Max Margin} set s "$o.Pool Elevation Max Margin" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Operating Head} set s "$o.Shifted Operating Head" "$s" order 40 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Turbine Release} set s "$o.Shifted Turbine Release" "$s" order 41 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency} set s "$o.Efficiency" "$s" order 42 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Estimate} set s "$o.Turbine Release Estimate" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head Estimate} set s "$o.Operating Head Estimate" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency Estimate} set s "$o.Efficiency Estimate" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Max Efficiency Turbine Release} set s "$o.Max Efficiency Turbine Release" "$s" order 46 "$s" units 15 {%f} 2 "$s" value NaN {cms} "$o" {ScalarSlot} {Max Efficiency Operating Head} set s "$o.Max Efficiency Operating Head" "$s" order 47 "$s" units 2 {%f} 2 "$s" value NaN {m} "$o" {ScalarSlot} {cos Efficiency Theta} set s "$o.cos Efficiency Theta" "$s" order 48 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {sin Efficiency Theta} set s "$o.sin Efficiency Theta" "$s" order 49 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Pool Elevation Estimate} set s "$o.Pool Elevation Estimate" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Estimate Avg} set s "$o.Pool Elevation Estimate Avg" "$s" order 51 "$s" units 2 {%f} 2 "$s" value 173.95033627722239 {m} "$o" {SeriesSlot} {Inflow Estimate} set s "$o.Inflow Estimate" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Estimate} set s "$o.Outflow Estimate" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Estimate Avg} set s "$o.Outflow Estimate Avg" "$s" order 54 "$s" units 15 {%f} 2 "$s" value 6511.9770061977788 {cms} "$o" {ScalarSlot} {Tailwater Estimate Avg} set s "$o.Tailwater Estimate Avg" "$s" order 55 "$s" units 2 {%f} 2 "$s" value 150.97215947391413 {m} "$o" {SeriesSlot} {Tailwater Estimate} set s "$o.Tailwater Estimate" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Operating Head Estimate Avg} set s "$o.Operating Head Estimate Avg" "$s" order 57 "$s" units 2 {%f} 2 "$s" value 22.978176803308259 {m} "$o" {ScalarSlot} {Max Efficiency} set s "$o.Max Efficiency" "$s" order 58 "$s" units 75 {%f} 2 "$s" value NaN {decimal} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1040 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 174.19320000000019 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 158.49600000000018 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 170.68800000000019 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 67 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 146.30400000000014 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 70 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK Estimate} set s "$o.HK Estimate" "$s" order 73 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK} set s "$o.HK" "$s" order 74 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax 0 0.28251733377190869 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Operating Head Count} set s "$o.HK Operating Head Count" "$s" order 75 "$s" units 0 {%f} 2 "$s" value 6 {NONE} "$o" {TableSlot} {HK Table Operating Head} set s "$o.HK Table Operating Head" "$s" order 76 "$s" resize 6 1 "$s" setRowLabels {} {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 2 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 12.192000000000013 "$s" row 1 19.812000000000022 "$s" row 2 21.336000000000023 "$s" row 3 24.384000000000025 "$s" row 4 25.908000000000026 "$s" row 5 28.956000000000031 "$o" {TableSlot} {HK Table Turbine Release} set s "$o.HK Table Turbine Release" "$s" order 77 "$s" resize 5 1 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 15 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 28.316846591999994 "$s" row 1 1274.2580966399996 "$s" row 2 2690.1004262399993 "$s" row 3 4105.9427558399993 "$s" row 4 4955.4481535999985 "$o" {ScalarSlot} {HK Turbine Release Count} set s "$o.HK Turbine Release Count" "$s" order 78 "$s" units 0 {%f} 2 "$s" value 5 {NONE} "$o" {TableSlot} {HK Table} set s "$o.HK Table" "$s" order 79 "$s" resize 15 15 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setMaximums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setUnits 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} "$s" row 0 0.13483781839113829 0.13483781839113829 0.13483781839113829 0.11933921857606493 0.11098895255324989 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 1 0.17776004899280057 0.17776004899280057 0.17776004899280054 0.17266504175214439 0.17069282900756574 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 2 0.19156217505057552 0.19156217505057552 0.19156217505057552 0.18610434378116417 0.18399168645235794 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 3 0.22077113315720584 0.22077113315720587 0.22077113315720584 0.21516015927216903 0.21298822237730744 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 4 0.23508306008982549 0.23508306008982552 0.23508306008982549 0.22964001526729297 0.227533081584716 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 5 0.26337434251405567 0.26337434251405573 0.26337434251405567 0.25754772910064988 0.25529232087670151 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$o" {ScalarSlot} {HK Count} set s "$o.HK Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 30 {NONE} "$o" {TableSlot} {HK Table 3D} set s "$o.HK Table 3D" "$s" order 81 "$s" resize 225 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {HK} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 2 15 30 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 12.192000000000013 28.316846591999994 0.13483781839113829 "$s" row 1 12.192000000000013 1274.2580966399996 0.13483781839113829 "$s" row 2 12.192000000000013 2690.1004262399993 0.13483781839113829 "$s" row 3 12.192000000000013 4105.9427558399993 0.11933921857606493 "$s" row 4 12.192000000000013 4955.4481535999985 0.11098895255324989 "$s" row 5 19.812000000000022 28.316846591999994 0.17776004899280057 "$s" row 6 19.812000000000022 1274.2580966399996 0.17776004899280057 "$s" row 7 19.812000000000022 2690.1004262399993 0.17776004899280054 "$s" row 8 19.812000000000022 4105.9427558399993 0.17266504175214439 "$s" row 9 19.812000000000022 4955.4481535999985 0.17069282900756574 "$s" row 10 21.336000000000023 28.316846591999994 0.19156217505057552 "$s" row 11 21.336000000000023 1274.2580966399996 0.19156217505057552 "$s" row 12 21.336000000000023 2690.1004262399993 0.19156217505057552 "$s" row 13 21.336000000000023 4105.9427558399993 0.18610434378116417 "$s" row 14 21.336000000000023 4955.4481535999985 0.18399168645235794 "$s" row 15 24.384000000000025 28.316846591999994 0.22077113315720584 "$s" row 16 24.384000000000025 1274.2580966399996 0.22077113315720587 "$s" row 17 24.384000000000025 2690.1004262399993 0.22077113315720584 "$s" row 18 24.384000000000025 4105.9427558399993 0.21516015927216903 "$s" row 19 24.384000000000025 4955.4481535999985 0.21298822237730744 "$s" row 20 25.908000000000026 28.316846591999994 0.23508306008982549 "$s" row 21 25.908000000000026 1274.2580966399996 0.23508306008982552 "$s" row 22 25.908000000000026 2690.1004262399993 0.23508306008982549 "$s" row 23 25.908000000000026 4105.9427558399993 0.22964001526729297 "$s" row 24 25.908000000000026 4955.4481535999985 0.227533081584716 "$s" row 25 28.956000000000031 28.316846591999994 0.26337434251405567 "$s" row 26 28.956000000000031 1274.2580966399996 0.26337434251405573 "$s" row 27 28.956000000000031 2690.1004262399993 0.26337434251405567 "$s" row 28 28.956000000000031 4105.9427558399993 0.25754772910064988 "$s" row 29 28.956000000000031 4955.4481535999985 0.25529232087670151 "$s" row 30 NaN NaN NaN "$s" row 31 NaN NaN NaN "$s" row 32 NaN NaN NaN "$s" row 33 NaN NaN NaN "$s" row 34 NaN NaN NaN "$s" row 35 NaN NaN NaN "$s" row 36 NaN NaN NaN "$s" row 37 NaN NaN NaN "$s" row 38 NaN NaN NaN "$s" row 39 NaN NaN NaN "$s" row 40 NaN NaN NaN "$s" row 41 NaN NaN NaN "$s" row 42 NaN NaN NaN "$s" row 43 NaN NaN NaN "$s" row 44 NaN NaN NaN "$s" row 45 NaN NaN NaN "$s" row 46 NaN NaN NaN "$s" row 47 NaN NaN NaN "$s" row 48 NaN NaN NaN "$s" row 49 NaN NaN NaN "$s" row 50 NaN NaN NaN "$s" row 51 NaN NaN NaN "$s" row 52 NaN NaN NaN "$s" row 53 NaN NaN NaN "$s" row 54 NaN NaN NaN "$s" row 55 NaN NaN NaN "$s" row 56 NaN NaN NaN "$s" row 57 NaN NaN NaN "$s" row 58 NaN NaN NaN "$s" row 59 NaN NaN NaN "$s" row 60 NaN NaN NaN "$s" row 61 NaN NaN NaN "$s" row 62 NaN NaN NaN "$s" row 63 NaN NaN NaN "$s" row 64 NaN NaN NaN "$s" row 65 NaN NaN NaN "$s" row 66 NaN NaN NaN "$s" row 67 NaN NaN NaN "$s" row 68 NaN NaN NaN "$s" row 69 NaN NaN NaN "$s" row 70 NaN NaN NaN "$s" row 71 NaN NaN NaN "$s" row 72 NaN NaN NaN "$s" row 73 NaN NaN NaN "$s" row 74 NaN NaN NaN "$s" row 75 NaN NaN NaN "$s" row 76 NaN NaN NaN "$s" row 77 NaN NaN NaN "$s" row 78 NaN NaN NaN "$s" row 79 NaN NaN NaN "$s" row 80 NaN NaN NaN "$s" row 81 NaN NaN NaN "$s" row 82 NaN NaN NaN "$s" row 83 NaN NaN NaN "$s" row 84 NaN NaN NaN "$s" row 85 NaN NaN NaN "$s" row 86 NaN NaN NaN "$s" row 87 NaN NaN NaN "$s" row 88 NaN NaN NaN "$s" row 89 NaN NaN NaN "$s" row 90 NaN NaN NaN "$s" row 91 NaN NaN NaN "$s" row 92 NaN NaN NaN "$s" row 93 NaN NaN NaN "$s" row 94 NaN NaN NaN "$s" row 95 NaN NaN NaN "$s" row 96 NaN NaN NaN "$s" row 97 NaN NaN NaN "$s" row 98 NaN NaN NaN "$s" row 99 NaN NaN NaN "$s" row 100 NaN NaN NaN "$s" row 101 NaN NaN NaN "$s" row 102 NaN NaN NaN "$s" row 103 NaN NaN NaN "$s" row 104 NaN NaN NaN "$s" row 105 NaN NaN NaN "$s" row 106 NaN NaN NaN "$s" row 107 NaN NaN NaN "$s" row 108 NaN NaN NaN "$s" row 109 NaN NaN NaN "$s" row 110 NaN NaN NaN "$s" row 111 NaN NaN NaN "$s" row 112 NaN NaN NaN "$s" row 113 NaN NaN NaN "$s" row 114 NaN NaN NaN "$s" row 115 NaN NaN NaN "$s" row 116 NaN NaN NaN "$s" row 117 NaN NaN NaN "$s" row 118 NaN NaN NaN "$s" row 119 NaN NaN NaN "$s" row 120 NaN NaN NaN "$s" row 121 NaN NaN NaN "$s" row 122 NaN NaN NaN "$s" row 123 NaN NaN NaN "$s" row 124 NaN NaN NaN "$s" row 125 NaN NaN NaN "$s" row 126 NaN NaN NaN "$s" row 127 NaN NaN NaN "$s" row 128 NaN NaN NaN "$s" row 129 NaN NaN NaN "$s" row 130 NaN NaN NaN "$s" row 131 NaN NaN NaN "$s" row 132 NaN NaN NaN "$s" row 133 NaN NaN NaN "$s" row 134 NaN NaN NaN "$s" row 135 NaN NaN NaN "$s" row 136 NaN NaN NaN "$s" row 137 NaN NaN NaN "$s" row 138 NaN NaN NaN "$s" row 139 NaN NaN NaN "$s" row 140 NaN NaN NaN "$s" row 141 NaN NaN NaN "$s" row 142 NaN NaN NaN "$s" row 143 NaN NaN NaN "$s" row 144 NaN NaN NaN "$s" row 145 NaN NaN NaN "$s" row 146 NaN NaN NaN "$s" row 147 NaN NaN NaN "$s" row 148 NaN NaN NaN "$s" row 149 NaN NaN NaN "$s" row 150 NaN NaN NaN "$s" row 151 NaN NaN NaN "$s" row 152 NaN NaN NaN "$s" row 153 NaN NaN NaN "$s" row 154 NaN NaN NaN "$s" row 155 NaN NaN NaN "$s" row 156 NaN NaN NaN "$s" row 157 NaN NaN NaN "$s" row 158 NaN NaN NaN "$s" row 159 NaN NaN NaN "$s" row 160 NaN NaN NaN "$s" row 161 NaN NaN NaN "$s" row 162 NaN NaN NaN "$s" row 163 NaN NaN NaN "$s" row 164 NaN NaN NaN "$s" row 165 NaN NaN NaN "$s" row 166 NaN NaN NaN "$s" row 167 NaN NaN NaN "$s" row 168 NaN NaN NaN "$s" row 169 NaN NaN NaN "$s" row 170 NaN NaN NaN "$s" row 171 NaN NaN NaN "$s" row 172 NaN NaN NaN "$s" row 173 NaN NaN NaN "$s" row 174 NaN NaN NaN "$s" row 175 NaN NaN NaN "$s" row 176 NaN NaN NaN "$s" row 177 NaN NaN NaN "$s" row 178 NaN NaN NaN "$s" row 179 NaN NaN NaN "$s" row 180 NaN NaN NaN "$s" row 181 NaN NaN NaN "$s" row 182 NaN NaN NaN "$s" row 183 NaN NaN NaN "$s" row 184 NaN NaN NaN "$s" row 185 NaN NaN NaN "$s" row 186 NaN NaN NaN "$s" row 187 NaN NaN NaN "$s" row 188 NaN NaN NaN "$s" row 189 NaN NaN NaN "$s" row 190 NaN NaN NaN "$s" row 191 NaN NaN NaN "$s" row 192 NaN NaN NaN "$s" row 193 NaN NaN NaN "$s" row 194 NaN NaN NaN "$s" row 195 NaN NaN NaN "$s" row 196 NaN NaN NaN "$s" row 197 NaN NaN NaN "$s" row 198 NaN NaN NaN "$s" row 199 NaN NaN NaN "$s" row 200 NaN NaN NaN "$s" row 201 NaN NaN NaN "$s" row 202 NaN NaN NaN "$s" row 203 NaN NaN NaN "$s" row 204 NaN NaN NaN "$s" row 205 NaN NaN NaN "$s" row 206 NaN NaN NaN "$s" row 207 NaN NaN NaN "$s" row 208 NaN NaN NaN "$s" row 209 NaN NaN NaN "$s" row 210 NaN NaN NaN "$s" row 211 NaN NaN NaN "$s" row 212 NaN NaN NaN "$s" row 213 NaN NaN NaN "$s" row 214 NaN NaN NaN "$s" row 215 NaN NaN NaN "$s" row 216 NaN NaN NaN "$s" row 217 NaN NaN NaN "$s" row 218 NaN NaN NaN "$s" row 219 NaN NaN NaN "$s" row 220 NaN NaN NaN "$s" row 221 NaN NaN NaN "$s" row 222 NaN NaN NaN "$s" row 223 NaN NaN NaN "$s" row 224 NaN NaN 0 "$o" {SeriesSlot} {HKWeight_0} set s "$o.HKWeight_0" "$s" order 82 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_1} set s "$o.HKWeight_1" "$s" order 83 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_10} set s "$o.HKWeight_10" "$s" order 84 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_11} set s "$o.HKWeight_11" "$s" order 85 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_12} set s "$o.HKWeight_12" "$s" order 86 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_13} set s "$o.HKWeight_13" "$s" order 87 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_14} set s "$o.HKWeight_14" "$s" order 88 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_15} set s "$o.HKWeight_15" "$s" order 89 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_16} set s "$o.HKWeight_16" "$s" order 90 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_17} set s "$o.HKWeight_17" "$s" order 91 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_18} set s "$o.HKWeight_18" "$s" order 92 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_19} set s "$o.HKWeight_19" "$s" order 93 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_2} set s "$o.HKWeight_2" "$s" order 94 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_20} set s "$o.HKWeight_20" "$s" order 95 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_21} set s "$o.HKWeight_21" "$s" order 96 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_22} set s "$o.HKWeight_22" "$s" order 97 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_23} set s "$o.HKWeight_23" "$s" order 98 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_24} set s "$o.HKWeight_24" "$s" order 99 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_25} set s "$o.HKWeight_25" "$s" order 100 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_3} set s "$o.HKWeight_3" "$s" order 101 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_4} set s "$o.HKWeight_4" "$s" order 102 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_5} set s "$o.HKWeight_5" "$s" order 103 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_6} set s "$o.HKWeight_6" "$s" order 104 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_7} set s "$o.HKWeight_7" "$s" order 105 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_8} set s "$o.HKWeight_8" "$s" order 106 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_9} set s "$o.HKWeight_9" "$s" order 107 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_26} set s "$o.HKWeight_26" "$s" order 108 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_27} set s "$o.HKWeight_27" "$s" order 109 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_28} set s "$o.HKWeight_28" "$s" order 110 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_29} set s "$o.HKWeight_29" "$s" order 111 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_30} set s "$o.HKWeight_30" "$s" order 112 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_31} set s "$o.HKWeight_31" "$s" order 113 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_32} set s "$o.HKWeight_32" "$s" order 114 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_33} set s "$o.HKWeight_33" "$s" order 115 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_34} set s "$o.HKWeight_34" "$s" order 116 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_35} set s "$o.HKWeight_35" "$s" order 117 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_36} set s "$o.HKWeight_36" "$s" order 118 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_37} set s "$o.HKWeight_37" "$s" order 119 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_40} set s "$o.HKWeight_40" "$s" order 120 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_41} set s "$o.HKWeight_41" "$s" order 121 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_42} set s "$o.HKWeight_42" "$s" order 122 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_43} set s "$o.HKWeight_43" "$s" order 123 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_44} set s "$o.HKWeight_44" "$s" order 124 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_45} set s "$o.HKWeight_45" "$s" order 125 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_46} set s "$o.HKWeight_46" "$s" order 126 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_47} set s "$o.HKWeight_47" "$s" order 127 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_48} set s "$o.HKWeight_48" "$s" order 128 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_49} set s "$o.HKWeight_49" "$s" order 129 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_50} set s "$o.HKWeight_50" "$s" order 130 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_51} set s "$o.HKWeight_51" "$s" order 131 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_52} set s "$o.HKWeight_52" "$s" order 132 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_54} set s "$o.HKWeight_54" "$s" order 133 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_55} set s "$o.HKWeight_55" "$s" order 134 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_56} set s "$o.HKWeight_56" "$s" order 135 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_57} set s "$o.HKWeight_57" "$s" order 136 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_58} set s "$o.HKWeight_58" "$s" order 137 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_59} set s "$o.HKWeight_59" "$s" order 138 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_60} set s "$o.HKWeight_60" "$s" order 139 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_61} set s "$o.HKWeight_61" "$s" order 140 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_62} set s "$o.HKWeight_62" "$s" order 141 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_63} set s "$o.HKWeight_63" "$s" order 142 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_64} set s "$o.HKWeight_64" "$s" order 143 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_65} set s "$o.HKWeight_65" "$s" order 144 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_66} set s "$o.HKWeight_66" "$s" order 145 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_67} set s "$o.HKWeight_67" "$s" order 146 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_68} set s "$o.HKWeight_68" "$s" order 147 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_69} set s "$o.HKWeight_69" "$s" order 148 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_70} set s "$o.HKWeight_70" "$s" order 149 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_71} set s "$o.HKWeight_71" "$s" order 150 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_72} set s "$o.HKWeight_72" "$s" order 151 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_73} set s "$o.HKWeight_73" "$s" order 152 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_74} set s "$o.HKWeight_74" "$s" order 153 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_75} set s "$o.HKWeight_75" "$s" order 154 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_100} set s "$o.HKWeight_100" "$s" order 155 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_76} set s "$o.HKWeight_76" "$s" order 156 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_77} set s "$o.HKWeight_77" "$s" order 157 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_78} set s "$o.HKWeight_78" "$s" order 158 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_79} set s "$o.HKWeight_79" "$s" order 159 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_80} set s "$o.HKWeight_80" "$s" order 160 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_81} set s "$o.HKWeight_81" "$s" order 161 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_82} set s "$o.HKWeight_82" "$s" order 162 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_83} set s "$o.HKWeight_83" "$s" order 163 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_84} set s "$o.HKWeight_84" "$s" order 164 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_85} set s "$o.HKWeight_85" "$s" order 165 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_86} set s "$o.HKWeight_86" "$s" order 166 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_87} set s "$o.HKWeight_87" "$s" order 167 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_88} set s "$o.HKWeight_88" "$s" order 168 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_89} set s "$o.HKWeight_89" "$s" order 169 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_90} set s "$o.HKWeight_90" "$s" order 170 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_91} set s "$o.HKWeight_91" "$s" order 171 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_92} set s "$o.HKWeight_92" "$s" order 172 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_93} set s "$o.HKWeight_93" "$s" order 173 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_94} set s "$o.HKWeight_94" "$s" order 174 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_95} set s "$o.HKWeight_95" "$s" order 175 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_96} set s "$o.HKWeight_96" "$s" order 176 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_97} set s "$o.HKWeight_97" "$s" order 177 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_98} set s "$o.HKWeight_98" "$s" order 178 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_99} set s "$o.HKWeight_99" "$s" order 179 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_101} set s "$o.HKWeight_101" "$s" order 180 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_102} set s "$o.HKWeight_102" "$s" order 181 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_103} set s "$o.HKWeight_103" "$s" order 182 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_104} set s "$o.HKWeight_104" "$s" order 183 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_105} set s "$o.HKWeight_105" "$s" order 184 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_106} set s "$o.HKWeight_106" "$s" order 185 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_107} set s "$o.HKWeight_107" "$s" order 186 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_108} set s "$o.HKWeight_108" "$s" order 187 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_109} set s "$o.HKWeight_109" "$s" order 188 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_110} set s "$o.HKWeight_110" "$s" order 189 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_111} set s "$o.HKWeight_111" "$s" order 190 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_112} set s "$o.HKWeight_112" "$s" order 191 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_113} set s "$o.HKWeight_113" "$s" order 192 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_114} set s "$o.HKWeight_114" "$s" order 193 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_115} set s "$o.HKWeight_115" "$s" order 194 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_116} set s "$o.HKWeight_116" "$s" order 195 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_117} set s "$o.HKWeight_117" "$s" order 196 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_118} set s "$o.HKWeight_118" "$s" order 197 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_119} set s "$o.HKWeight_119" "$s" order 198 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_120} set s "$o.HKWeight_120" "$s" order 199 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_121} set s "$o.HKWeight_121" "$s" order 200 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_122} set s "$o.HKWeight_122" "$s" order 201 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_123} set s "$o.HKWeight_123" "$s" order 202 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_124} set s "$o.HKWeight_124" "$s" order 203 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_125} set s "$o.HKWeight_125" "$s" order 204 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_126} set s "$o.HKWeight_126" "$s" order 205 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_127} set s "$o.HKWeight_127" "$s" order 206 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_128} set s "$o.HKWeight_128" "$s" order 207 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_129} set s "$o.HKWeight_129" "$s" order 208 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_130} set s "$o.HKWeight_130" "$s" order 209 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_131} set s "$o.HKWeight_131" "$s" order 210 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_132} set s "$o.HKWeight_132" "$s" order 211 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_133} set s "$o.HKWeight_133" "$s" order 212 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_134} set s "$o.HKWeight_134" "$s" order 213 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_135} set s "$o.HKWeight_135" "$s" order 214 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_136} set s "$o.HKWeight_136" "$s" order 215 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_137} set s "$o.HKWeight_137" "$s" order 216 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_138} set s "$o.HKWeight_138" "$s" order 217 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_139} set s "$o.HKWeight_139" "$s" order 218 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_140} set s "$o.HKWeight_140" "$s" order 219 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_141} set s "$o.HKWeight_141" "$s" order 220 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_142} set s "$o.HKWeight_142" "$s" order 221 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_143} set s "$o.HKWeight_143" "$s" order 222 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_144} set s "$o.HKWeight_144" "$s" order 223 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_145} set s "$o.HKWeight_145" "$s" order 224 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_146} set s "$o.HKWeight_146" "$s" order 225 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_147} set s "$o.HKWeight_147" "$s" order 226 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_148} set s "$o.HKWeight_148" "$s" order 227 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_149} set s "$o.HKWeight_149" "$s" order 228 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_150} set s "$o.HKWeight_150" "$s" order 229 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_151} set s "$o.HKWeight_151" "$s" order 230 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_152} set s "$o.HKWeight_152" "$s" order 231 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_153} set s "$o.HKWeight_153" "$s" order 232 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_154} set s "$o.HKWeight_154" "$s" order 233 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_155} set s "$o.HKWeight_155" "$s" order 234 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_156} set s "$o.HKWeight_156" "$s" order 235 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_157} set s "$o.HKWeight_157" "$s" order 236 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_158} set s "$o.HKWeight_158" "$s" order 237 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_159} set s "$o.HKWeight_159" "$s" order 238 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_160} set s "$o.HKWeight_160" "$s" order 239 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_161} set s "$o.HKWeight_161" "$s" order 240 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_162} set s "$o.HKWeight_162" "$s" order 241 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_163} set s "$o.HKWeight_163" "$s" order 242 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_164} set s "$o.HKWeight_164" "$s" order 243 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_165} set s "$o.HKWeight_165" "$s" order 244 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_166} set s "$o.HKWeight_166" "$s" order 245 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_167} set s "$o.HKWeight_167" "$s" order 246 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_168} set s "$o.HKWeight_168" "$s" order 247 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_169} set s "$o.HKWeight_169" "$s" order 248 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_170} set s "$o.HKWeight_170" "$s" order 249 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_171} set s "$o.HKWeight_171" "$s" order 250 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_172} set s "$o.HKWeight_172" "$s" order 251 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_173} set s "$o.HKWeight_173" "$s" order 252 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_174} set s "$o.HKWeight_174" "$s" order 253 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_175} set s "$o.HKWeight_175" "$s" order 254 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_176} set s "$o.HKWeight_176" "$s" order 255 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_177} set s "$o.HKWeight_177" "$s" order 256 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_178} set s "$o.HKWeight_178" "$s" order 257 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_179} set s "$o.HKWeight_179" "$s" order 258 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_180} set s "$o.HKWeight_180" "$s" order 259 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_181} set s "$o.HKWeight_181" "$s" order 260 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_182} set s "$o.HKWeight_182" "$s" order 261 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_183} set s "$o.HKWeight_183" "$s" order 262 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_184} set s "$o.HKWeight_184" "$s" order 263 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_185} set s "$o.HKWeight_185" "$s" order 264 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_186} set s "$o.HKWeight_186" "$s" order 265 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_187} set s "$o.HKWeight_187" "$s" order 266 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_188} set s "$o.HKWeight_188" "$s" order 267 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_189} set s "$o.HKWeight_189" "$s" order 268 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_190} set s "$o.HKWeight_190" "$s" order 269 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_191} set s "$o.HKWeight_191" "$s" order 270 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_192} set s "$o.HKWeight_192" "$s" order 271 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_193} set s "$o.HKWeight_193" "$s" order 272 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_194} set s "$o.HKWeight_194" "$s" order 273 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_195} set s "$o.HKWeight_195" "$s" order 274 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_196} set s "$o.HKWeight_196" "$s" order 275 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_197} set s "$o.HKWeight_197" "$s" order 276 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_198} set s "$o.HKWeight_198" "$s" order 277 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_199} set s "$o.HKWeight_199" "$s" order 278 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_200} set s "$o.HKWeight_200" "$s" order 279 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_201} set s "$o.HKWeight_201" "$s" order 280 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_202} set s "$o.HKWeight_202" "$s" order 281 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_203} set s "$o.HKWeight_203" "$s" order 282 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_204} set s "$o.HKWeight_204" "$s" order 283 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_205} set s "$o.HKWeight_205" "$s" order 284 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_206} set s "$o.HKWeight_206" "$s" order 285 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_207} set s "$o.HKWeight_207" "$s" order 286 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_208} set s "$o.HKWeight_208" "$s" order 287 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_209} set s "$o.HKWeight_209" "$s" order 288 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_210} set s "$o.HKWeight_210" "$s" order 289 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_211} set s "$o.HKWeight_211" "$s" order 290 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_212} set s "$o.HKWeight_212" "$s" order 291 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_213} set s "$o.HKWeight_213" "$s" order 292 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_214} set s "$o.HKWeight_214" "$s" order 293 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_215} set s "$o.HKWeight_215" "$s" order 294 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_216} set s "$o.HKWeight_216" "$s" order 295 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_217} set s "$o.HKWeight_217" "$s" order 296 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_218} set s "$o.HKWeight_218" "$s" order 297 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_219} set s "$o.HKWeight_219" "$s" order 298 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_220} set s "$o.HKWeight_220" "$s" order 299 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_221} set s "$o.HKWeight_221" "$s" order 300 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_222} set s "$o.HKWeight_222" "$s" order 301 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_223} set s "$o.HKWeight_223" "$s" order 302 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_224} set s "$o.HKWeight_224" "$s" order 303 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_225} set s "$o.HKWeight_225" "$s" order 304 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_38} set s "$o.HKWeight_38" "$s" order 305 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_39} set s "$o.HKWeight_39" "$s" order 306 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_53} set s "$o.HKWeight_53" "$s" order 307 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Estimate Avg} set s "$o.HK Estimate Avg" "$s" order 308 "$s" units 30 {%f} 2 "$s" value 0.20067038697647427 {MW/cms} "$o" {SeriesSlot} {Spill Required} set s "$o.Spill Required" "$s" order 309 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Estimate Avg} set s "$o.Turbine Release Estimate Avg" "$s" order 310 "$s" units 15 {%f} 2 "$s" value 4445.7793663931843 {cms} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Max Available Storage} set s "$o.Max Available Storage" "$s" order 307 "$s" units 8 {%f} 2 "$s" value 197601751.56215823 {m3} "$o" {SeriesSlot} {Active Storage} set s "$o.Active Storage" "$s" order 308 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 197601751.56215835 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elev Ramp Limit Down} set s "$o.Pool Elev Ramp Limit Down" "$s" order 309 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {ScalarSlot} {Pool Elev Ramp Limit Up} set s "$o.Pool Elev Ramp Limit Up" "$s" order 310 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 311 "$s" userDescript {2016-09-29 DMI data loads these value from EAS Account
4913 - WAN_DESIRED_ELEVATION_FT} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 173.73600000000019 @ 35 173.43120000000019 173.37024000000017 173.3092800000002 173.24832000000018 173.18736000000018 173.12640000000019 173.06544000000017 173.1568800000002 173.27880000000019 173.37024000000017 173.49216000000018 173.6140800000002 173.70552000000018 173.82744000000017 173.88840000000019 @ 4 173.82744000000017 173.73600000000019 173.67504000000017 173.6140800000002 173.55312000000018 173.49216000000018 173.43120000000019 173.37024000000017 173.3092800000002 173.24832000000018 173.18736000000018 173.12640000000019 173.06544000000017 173.1568800000002 173.27880000000019 173.37024000000017 173.49216000000018 173.6140800000002 173.70552000000018 173.73600000000019 @ 97 "$o" {SeriesSlot} {Draft Feet} set s "$o.Draft Feet" "$s" order 312 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax 0 9.4488000000000092 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Percent} set s "$o.Draft Percent" "$s" order 313 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume} set s "$o.Draft Volume" "$s" order 314 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 665346219.61199701 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 315 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 316 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 317 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 318 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 319 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 320 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 321 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 322 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Ramp Limit Down} set s "$o.Outflow Ramp Limit Down" "$s" order 323 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {ScalarSlot} {Outflow Ramp Limit Up} set s "$o.Outflow Ramp Limit Up" "$s" order 324 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 325 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Generation w Par Con} set s "$o.Special Operations Max Generation w Par Con" "$s" order 326 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 750 @ 169 "$o" {SeriesSlot} {Special Operations Max Pool Elevation w Par Con} set s "$o.Special Operations Max Pool Elevation w Par Con" "$s" order 327 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 174.19320000000019 @ 169 "$o" {SeriesSlot} {Special Operations Max Generation wo Par Con} set s "$o.Special Operations Max Generation wo Par Con" "$s" order 31 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 900 @ 169 "$o" {SeriesSlot} {Special Operations Max Pool Elevation wo Par Con} set s "$o.Special Operations Max Pool Elevation wo Par Con" "$s" order 32 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 174.19320000000019 @ 169 "$o" {SeriesSlot} {Special Operations Min Generation wo Par Con} set s "$o.Special Operations Min Generation wo Par Con" "$s" order 52 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Special Operations Min Generation w Par Con} set s "$o.Special Operations Min Generation w Par Con" "$s" order 52 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 566 @ 118 400 566 @ 50 "$o" {ScalarSlot} {Spill Reduced Bound} set s "$o.Spill Reduced Bound" "$s" order 353 "$s" units 15 {%f} 2 "$s" value 2831.6846591999993 {cms} "$o" {SeriesSlot} {Content Available} set s "$o.Content Available" "$s" order 334 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation w Par Con} set s "$o.Special Operations Min Pool Elevation w Par Con" "$s" order 30 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 170.68800000000019 @ 121 "$o" {SeriesSlot} {Special Operations Min Pool Elevation wo Par Con} set s "$o.Special Operations Min Pool Elevation wo Par Con" "$s" order 31 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 170.68800000000019 @ 169 "$o" {SeriesSlot} {Special Operations Max Outflow w Par Con} set s "$o.Special Operations Max Outflow w Par Con" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow wo Par Con} set s "$o.Special Operations Max Outflow wo Par Con" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 169 "$o" {SeriesSlot} {Special Operations Min Outflow w Par Con} set s "$o.Special Operations Min Outflow w Par Con" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 3964.3585228799989 @ 59 4728.913380863999 @ 48 3964.3585228799989 @ 14 "$o" {SeriesSlot} {Special Operations Min Outflow wo Par Con} set s "$o.Special Operations Min Outflow wo Par Con" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Coefficient Approximation Default} set s "$o.Power Coefficient Approximation Default" "$s" order 20 "$s" computedByExpr 2 {"PowerCoeffApproxDefault"( % "Grand Coulee" )} "$s" units 31 {%f} 2 "$s" value 0.77449998403386888 {MW/cms} "$o" {SeriesSlot} {Fish Spill Default} set s "$o.Fish Spill Default" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" SlotGroup {Special Operations Hard Constraints} set sg "$o.Special Operations Hard Constraints" "$sg" SlotGroup Order 71 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 12 {Special Operations Max Generation w Par Con} "$sg" SlotGroup LocalSlot 13 {Special Operations Max Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 14 {Special Operations Max Generation wo Par Con} "$sg" SlotGroup LocalSlot 15 {Special Operations Max Pool Elevation wo Par Con} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Generation wo Par Con} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Generation w Par Con} "$sg" SlotGroup LocalSlot 18 {Special Operations Max Outflow w Par Con} "$sg" SlotGroup LocalSlot 19 {Special Operations Max Outflow wo Par Con} "$sg" SlotGroup LocalSlot 20 {Special Operations Min Outflow w Par Con} "$sg" SlotGroup LocalSlot 21 {Special Operations Min Outflow wo Par Con} "$sg" SlotGroup LocalSlot 22 {Special Operations Min Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 23 {Special Operations Min Pool Elevation wo Par Con} "$o" SlotGroup {Pool Elev Margin} set sg "$o.Pool Elev Margin" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation Margin} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max Margin Default} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Max with Margin} "$sg" SlotGroup LocalSlot 3 {Pool Elevation Min Margin Default} "$sg" SlotGroup LocalSlot 4 {Pool Elevation Min with Margin} "$sg" SlotGroup LocalSlot 5 {Elevation Max Controlling} "$sg" SlotGroup LocalSlot 6 {Elevation Min Controlling} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Min Margin} "$sg" SlotGroup LocalSlot 8 {Pool Elevation Max Margin} "$o" SlotGroup {Efficiency Objective} set sg "$o.Efficiency Objective" "$sg" SlotGroup Order 49 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Shifted Operating Head} "$sg" SlotGroup LocalSlot 1 {Shifted Turbine Release} "$sg" SlotGroup LocalSlot 2 {Efficiency} "$sg" SlotGroup LocalSlot 3 {Efficiency Estimate} "$sg" SlotGroup LocalSlot 4 {Max Efficiency Turbine Release} "$sg" SlotGroup LocalSlot 5 {Max Efficiency Operating Head} "$sg" SlotGroup LocalSlot 6 {cos Efficiency Theta} "$sg" SlotGroup LocalSlot 7 {sin Efficiency Theta} "$sg" SlotGroup LocalSlot 8 {Max Efficiency} "$o" SlotGroup {Special Operations Soft Constraints} set sg "$o.Special Operations Soft Constraints" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Soft Max Spill} "$o" SlotGroup {Spill Slots} set sg "$o.Spill Slots" "$sg" SlotGroup Order 288 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fall Fish Spill Default} "$sg" SlotGroup LocalSlot 2 {Fall Fish Spill Season Default} "$sg" SlotGroup LocalSlot 3 {Summer Fish Spill Default} "$sg" SlotGroup LocalSlot 4 {Summer Fish Spill Season Default} "$sg" SlotGroup LocalSlot 5 {Spill As Energy} "$sg" SlotGroup LocalSlot 6 {Spill Reduced Bound} "$sg" SlotGroup LocalSlot 7 {Summer Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 8 {Fall Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 9 {Fish Spill Default} "$sg" SlotGroup LocalSlot 10 {Spill Required} "$o" SlotGroup {HK Objective} set sg "$o.HK Objective" "$sg" SlotGroup Order 256 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HK Operating Head Count} "$sg" SlotGroup LocalSlot 1 {HK Table Operating Head} "$sg" SlotGroup LocalSlot 2 {HK Table Turbine Release} "$sg" SlotGroup LocalSlot 3 {HK Turbine Release Count} "$sg" SlotGroup LocalSlot 4 {HK Table} "$sg" SlotGroup LocalSlot 5 {HK Count} "$sg" SlotGroup LocalSlot 6 {HK Table 3D} "$sg" SlotGroup LocalSlot 7 {HK} "$o" SlotGroup {HK Weights} set sg "$o.HK Weights" "$sg" SlotGroup Order 248 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HKWeight_0} "$sg" SlotGroup LocalSlot 1 {HKWeight_1} "$sg" SlotGroup LocalSlot 2 {HKWeight_10} "$sg" SlotGroup LocalSlot 3 {HKWeight_11} "$sg" SlotGroup LocalSlot 4 {HKWeight_12} "$sg" SlotGroup LocalSlot 5 {HKWeight_13} "$sg" SlotGroup LocalSlot 6 {HKWeight_14} "$sg" SlotGroup LocalSlot 7 {HKWeight_15} "$sg" SlotGroup LocalSlot 8 {HKWeight_16} "$sg" SlotGroup LocalSlot 9 {HKWeight_17} "$sg" SlotGroup LocalSlot 10 {HKWeight_18} "$sg" SlotGroup LocalSlot 11 {HKWeight_19} "$sg" SlotGroup LocalSlot 12 {HKWeight_2} "$sg" SlotGroup LocalSlot 13 {HKWeight_20} "$sg" SlotGroup LocalSlot 14 {HKWeight_21} "$sg" SlotGroup LocalSlot 15 {HKWeight_22} "$sg" SlotGroup LocalSlot 16 {HKWeight_23} "$sg" SlotGroup LocalSlot 17 {HKWeight_24} "$sg" SlotGroup LocalSlot 18 {HKWeight_25} "$sg" SlotGroup LocalSlot 19 {HKWeight_3} "$sg" SlotGroup LocalSlot 20 {HKWeight_4} "$sg" SlotGroup LocalSlot 21 {HKWeight_5} "$sg" SlotGroup LocalSlot 22 {HKWeight_6} "$sg" SlotGroup LocalSlot 23 {HKWeight_7} "$sg" SlotGroup LocalSlot 24 {HKWeight_8} "$sg" SlotGroup LocalSlot 25 {HKWeight_9} "$sg" SlotGroup LocalSlot 26 {HKWeight_26} "$sg" SlotGroup LocalSlot 27 {HKWeight_27} "$sg" SlotGroup LocalSlot 28 {HKWeight_28} "$sg" SlotGroup LocalSlot 29 {HKWeight_29} "$sg" SlotGroup LocalSlot 30 {HKWeight_30} "$sg" SlotGroup LocalSlot 31 {HKWeight_31} "$sg" SlotGroup LocalSlot 32 {HKWeight_32} "$sg" SlotGroup LocalSlot 33 {HKWeight_33} "$sg" SlotGroup LocalSlot 34 {HKWeight_34} "$sg" SlotGroup LocalSlot 35 {HKWeight_35} "$sg" SlotGroup LocalSlot 36 {HKWeight_36} "$sg" SlotGroup LocalSlot 37 {HKWeight_37} "$sg" SlotGroup LocalSlot 38 {HKWeight_40} "$sg" SlotGroup LocalSlot 39 {HKWeight_41} "$sg" SlotGroup LocalSlot 40 {HKWeight_42} "$sg" SlotGroup LocalSlot 41 {HKWeight_43} "$sg" SlotGroup LocalSlot 42 {HKWeight_44} "$sg" SlotGroup LocalSlot 43 {HKWeight_45} "$sg" SlotGroup LocalSlot 44 {HKWeight_46} "$sg" SlotGroup LocalSlot 45 {HKWeight_47} "$sg" SlotGroup LocalSlot 46 {HKWeight_48} "$sg" SlotGroup LocalSlot 47 {HKWeight_49} "$sg" SlotGroup LocalSlot 48 {HKWeight_50} "$sg" SlotGroup LocalSlot 49 {HKWeight_51} "$sg" SlotGroup LocalSlot 50 {HKWeight_52} "$sg" SlotGroup LocalSlot 51 {HKWeight_54} "$sg" SlotGroup LocalSlot 52 {HKWeight_55} "$sg" SlotGroup LocalSlot 53 {HKWeight_56} "$sg" SlotGroup LocalSlot 54 {HKWeight_57} "$sg" SlotGroup LocalSlot 55 {HKWeight_58} "$sg" SlotGroup LocalSlot 56 {HKWeight_59} "$sg" SlotGroup LocalSlot 57 {HKWeight_60} "$sg" SlotGroup LocalSlot 58 {HKWeight_61} "$sg" SlotGroup LocalSlot 59 {HKWeight_62} "$sg" SlotGroup LocalSlot 60 {HKWeight_63} "$sg" SlotGroup LocalSlot 61 {HKWeight_64} "$sg" SlotGroup LocalSlot 62 {HKWeight_65} "$sg" SlotGroup LocalSlot 63 {HKWeight_66} "$sg" SlotGroup LocalSlot 64 {HKWeight_67} "$sg" SlotGroup LocalSlot 65 {HKWeight_68} "$sg" SlotGroup LocalSlot 66 {HKWeight_69} "$sg" SlotGroup LocalSlot 67 {HKWeight_70} "$sg" SlotGroup LocalSlot 68 {HKWeight_71} "$sg" SlotGroup LocalSlot 69 {HKWeight_72} "$sg" SlotGroup LocalSlot 70 {HKWeight_73} "$sg" SlotGroup LocalSlot 71 {HKWeight_74} "$sg" SlotGroup LocalSlot 72 {HKWeight_75} "$sg" SlotGroup LocalSlot 73 {HKWeight_100} "$sg" SlotGroup LocalSlot 74 {HKWeight_76} "$sg" SlotGroup LocalSlot 75 {HKWeight_77} "$sg" SlotGroup LocalSlot 76 {HKWeight_78} "$sg" SlotGroup LocalSlot 77 {HKWeight_79} "$sg" SlotGroup LocalSlot 78 {HKWeight_80} "$sg" SlotGroup LocalSlot 79 {HKWeight_81} "$sg" SlotGroup LocalSlot 80 {HKWeight_82} "$sg" SlotGroup LocalSlot 81 {HKWeight_83} "$sg" SlotGroup LocalSlot 82 {HKWeight_84} "$sg" SlotGroup LocalSlot 83 {HKWeight_85} "$sg" SlotGroup LocalSlot 84 {HKWeight_86} "$sg" SlotGroup LocalSlot 85 {HKWeight_87} "$sg" SlotGroup LocalSlot 86 {HKWeight_88} "$sg" SlotGroup LocalSlot 87 {HKWeight_89} "$sg" SlotGroup LocalSlot 88 {HKWeight_90} "$sg" SlotGroup LocalSlot 89 {HKWeight_91} "$sg" SlotGroup LocalSlot 90 {HKWeight_92} "$sg" SlotGroup LocalSlot 91 {HKWeight_93} "$sg" SlotGroup LocalSlot 92 {HKWeight_94} "$sg" SlotGroup LocalSlot 93 {HKWeight_95} "$sg" SlotGroup LocalSlot 94 {HKWeight_96} "$sg" SlotGroup LocalSlot 95 {HKWeight_97} "$sg" SlotGroup LocalSlot 96 {HKWeight_98} "$sg" SlotGroup LocalSlot 97 {HKWeight_99} "$sg" SlotGroup LocalSlot 98 {HKWeight_101} "$sg" SlotGroup LocalSlot 99 {HKWeight_102} "$sg" SlotGroup LocalSlot 100 {HKWeight_103} "$sg" SlotGroup LocalSlot 101 {HKWeight_104} "$sg" SlotGroup LocalSlot 102 {HKWeight_105} "$sg" SlotGroup LocalSlot 103 {HKWeight_106} "$sg" SlotGroup LocalSlot 104 {HKWeight_107} "$sg" SlotGroup LocalSlot 105 {HKWeight_108} "$sg" SlotGroup LocalSlot 106 {HKWeight_109} "$sg" SlotGroup LocalSlot 107 {HKWeight_110} "$sg" SlotGroup LocalSlot 108 {HKWeight_111} "$sg" SlotGroup LocalSlot 109 {HKWeight_112} "$sg" SlotGroup LocalSlot 110 {HKWeight_113} "$sg" SlotGroup LocalSlot 111 {HKWeight_114} "$sg" SlotGroup LocalSlot 112 {HKWeight_115} "$sg" SlotGroup LocalSlot 113 {HKWeight_116} "$sg" SlotGroup LocalSlot 114 {HKWeight_117} "$sg" SlotGroup LocalSlot 115 {HKWeight_118} "$sg" SlotGroup LocalSlot 116 {HKWeight_119} "$sg" SlotGroup LocalSlot 117 {HKWeight_120} "$sg" SlotGroup LocalSlot 118 {HKWeight_121} "$sg" SlotGroup LocalSlot 119 {HKWeight_122} "$sg" SlotGroup LocalSlot 120 {HKWeight_123} "$sg" SlotGroup LocalSlot 121 {HKWeight_124} "$sg" SlotGroup LocalSlot 122 {HKWeight_125} "$sg" SlotGroup LocalSlot 123 {HKWeight_126} "$sg" SlotGroup LocalSlot 124 {HKWeight_127} "$sg" SlotGroup LocalSlot 125 {HKWeight_128} "$sg" SlotGroup LocalSlot 126 {HKWeight_129} "$sg" SlotGroup LocalSlot 127 {HKWeight_130} "$sg" SlotGroup LocalSlot 128 {HKWeight_131} "$sg" SlotGroup LocalSlot 129 {HKWeight_132} "$sg" SlotGroup LocalSlot 130 {HKWeight_133} "$sg" SlotGroup LocalSlot 131 {HKWeight_134} "$sg" SlotGroup LocalSlot 132 {HKWeight_135} "$sg" SlotGroup LocalSlot 133 {HKWeight_136} "$sg" SlotGroup LocalSlot 134 {HKWeight_137} "$sg" SlotGroup LocalSlot 135 {HKWeight_138} "$sg" SlotGroup LocalSlot 136 {HKWeight_139} "$sg" SlotGroup LocalSlot 137 {HKWeight_140} "$sg" SlotGroup LocalSlot 138 {HKWeight_141} "$sg" SlotGroup LocalSlot 139 {HKWeight_142} "$sg" SlotGroup LocalSlot 140 {HKWeight_143} "$sg" SlotGroup LocalSlot 141 {HKWeight_144} "$sg" SlotGroup LocalSlot 142 {HKWeight_145} "$sg" SlotGroup LocalSlot 143 {HKWeight_146} "$sg" SlotGroup LocalSlot 144 {HKWeight_147} "$sg" SlotGroup LocalSlot 145 {HKWeight_148} "$sg" SlotGroup LocalSlot 146 {HKWeight_149} "$sg" SlotGroup LocalSlot 147 {HKWeight_150} "$sg" SlotGroup LocalSlot 148 {HKWeight_151} "$sg" SlotGroup LocalSlot 149 {HKWeight_152} "$sg" SlotGroup LocalSlot 150 {HKWeight_153} "$sg" SlotGroup LocalSlot 151 {HKWeight_154} "$sg" SlotGroup LocalSlot 152 {HKWeight_155} "$sg" SlotGroup LocalSlot 153 {HKWeight_156} "$sg" SlotGroup LocalSlot 154 {HKWeight_157} "$sg" SlotGroup LocalSlot 155 {HKWeight_158} "$sg" SlotGroup LocalSlot 156 {HKWeight_159} "$sg" SlotGroup LocalSlot 157 {HKWeight_160} "$sg" SlotGroup LocalSlot 158 {HKWeight_161} "$sg" SlotGroup LocalSlot 159 {HKWeight_162} "$sg" SlotGroup LocalSlot 160 {HKWeight_163} "$sg" SlotGroup LocalSlot 161 {HKWeight_164} "$sg" SlotGroup LocalSlot 162 {HKWeight_165} "$sg" SlotGroup LocalSlot 163 {HKWeight_166} "$sg" SlotGroup LocalSlot 164 {HKWeight_167} "$sg" SlotGroup LocalSlot 165 {HKWeight_168} "$sg" SlotGroup LocalSlot 166 {HKWeight_169} "$sg" SlotGroup LocalSlot 167 {HKWeight_170} "$sg" SlotGroup LocalSlot 168 {HKWeight_171} "$sg" SlotGroup LocalSlot 169 {HKWeight_172} "$sg" SlotGroup LocalSlot 170 {HKWeight_173} "$sg" SlotGroup LocalSlot 171 {HKWeight_174} "$sg" SlotGroup LocalSlot 172 {HKWeight_175} "$sg" SlotGroup LocalSlot 173 {HKWeight_176} "$sg" SlotGroup LocalSlot 174 {HKWeight_177} "$sg" SlotGroup LocalSlot 175 {HKWeight_178} "$sg" SlotGroup LocalSlot 176 {HKWeight_179} "$sg" SlotGroup LocalSlot 177 {HKWeight_180} "$sg" SlotGroup LocalSlot 178 {HKWeight_181} "$sg" SlotGroup LocalSlot 179 {HKWeight_182} "$sg" SlotGroup LocalSlot 180 {HKWeight_183} "$sg" SlotGroup LocalSlot 181 {HKWeight_184} "$sg" SlotGroup LocalSlot 182 {HKWeight_185} "$sg" SlotGroup LocalSlot 183 {HKWeight_186} "$sg" SlotGroup LocalSlot 184 {HKWeight_187} "$sg" SlotGroup LocalSlot 185 {HKWeight_188} "$sg" SlotGroup LocalSlot 186 {HKWeight_189} "$sg" SlotGroup LocalSlot 187 {HKWeight_190} "$sg" SlotGroup LocalSlot 188 {HKWeight_191} "$sg" SlotGroup LocalSlot 189 {HKWeight_192} "$sg" SlotGroup LocalSlot 190 {HKWeight_193} "$sg" SlotGroup LocalSlot 191 {HKWeight_194} "$sg" SlotGroup LocalSlot 192 {HKWeight_195} "$sg" SlotGroup LocalSlot 193 {HKWeight_196} "$sg" SlotGroup LocalSlot 194 {HKWeight_197} "$sg" SlotGroup LocalSlot 195 {HKWeight_198} "$sg" SlotGroup LocalSlot 196 {HKWeight_199} "$sg" SlotGroup LocalSlot 197 {HKWeight_200} "$sg" SlotGroup LocalSlot 198 {HKWeight_201} "$sg" SlotGroup LocalSlot 199 {HKWeight_202} "$sg" SlotGroup LocalSlot 200 {HKWeight_203} "$sg" SlotGroup LocalSlot 201 {HKWeight_204} "$sg" SlotGroup LocalSlot 202 {HKWeight_205} "$sg" SlotGroup LocalSlot 203 {HKWeight_206} "$sg" SlotGroup LocalSlot 204 {HKWeight_207} "$sg" SlotGroup LocalSlot 205 {HKWeight_208} "$sg" SlotGroup LocalSlot 206 {HKWeight_209} "$sg" SlotGroup LocalSlot 207 {HKWeight_210} "$sg" SlotGroup LocalSlot 208 {HKWeight_211} "$sg" SlotGroup LocalSlot 209 {HKWeight_212} "$sg" SlotGroup LocalSlot 210 {HKWeight_213} "$sg" SlotGroup LocalSlot 211 {HKWeight_214} "$sg" SlotGroup LocalSlot 212 {HKWeight_215} "$sg" SlotGroup LocalSlot 213 {HKWeight_216} "$sg" SlotGroup LocalSlot 214 {HKWeight_217} "$sg" SlotGroup LocalSlot 215 {HKWeight_218} "$sg" SlotGroup LocalSlot 216 {HKWeight_219} "$sg" SlotGroup LocalSlot 217 {HKWeight_220} "$sg" SlotGroup LocalSlot 218 {HKWeight_221} "$sg" SlotGroup LocalSlot 219 {HKWeight_222} "$sg" SlotGroup LocalSlot 220 {HKWeight_223} "$sg" SlotGroup LocalSlot 221 {HKWeight_224} "$sg" SlotGroup LocalSlot 222 {HKWeight_225} "$sg" SlotGroup LocalSlot 223 {HKWeight_38} "$sg" SlotGroup LocalSlot 224 {HKWeight_39} "$sg" SlotGroup LocalSlot 225 {HKWeight_53} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Tailwater Elevation Baseline} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$sg" SlotGroup LocalSlot 3 {Power Coefficient Approximation Default} "$o" SlotGroup {Estimates} set sg "$o.Estimates" "$sg" SlotGroup Order 40 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Tailwater Estimate} "$sg" SlotGroup LocalSlot 1 {Operating Head Estimate} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Estimate} "$sg" SlotGroup LocalSlot 3 {Turbine Release Estimate} "$sg" SlotGroup LocalSlot 4 {Inflow Estimate} "$sg" SlotGroup LocalSlot 5 {Outflow Estimate} "$sg" SlotGroup LocalSlot 6 {HK Estimate} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Estimate Avg} "$sg" SlotGroup LocalSlot 8 {Operating Head Estimate Avg} "$sg" SlotGroup LocalSlot 9 {Turbine Release Estimate Avg} "$sg" SlotGroup LocalSlot 10 {HK Estimate Avg} "$sg" SlotGroup LocalSlot 11 {Outflow Estimate Avg} "$sg" SlotGroup LocalSlot 12 {Tailwater Estimate Avg} "$o" hideSlots 20 hideOn hideEmptyOff "$o" hids {CJAD Draft Max} "$o" hids {CJAD II Draft1 Max} "$o" hids {CJAD II Draft2 Max} "$o" hids {CJAD II Required Draft1 Volume} "$o" hids {CJAD II Required Draft2 Volume} "$o" hids {CJAD Required Draft Volume} "$o" hids {Desired Operating Elevation} "$o" hids {Fall Fish Spill Manual} "$o" hids {Minimum Generation Default} "$o" hids {Minimum Generation Manual} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Summer Fish Spill Manual} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Allowable Curvature Scalar} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {Wanapum} set o "$ws.Wanapum" $ws SimObj $obj {LevelPowerReservoir} 273 869 {} 799 1176 501 367 "$o" geospatialCoords 0 0 501 367 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5037 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {EIS Table Lookup} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {None} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Stage Flow Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Stage Flow Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 5686.0227956735989 5674.6960570367983 5609.5673098751986 5728.4980655615991 6042.8150627327987 6204.2210883071984 6232.5379348991983 6258.0230968319984 6280.6765741055988 6277.8448894463982 6241.0329888767983 6221.2111962623976 6266.5181508095984 6241.0329888767983 6238.2013042175986 6102.280440575998 5983.3496848895984 5770.9733354495984 5677.5277416959989 5533.1118240767983 5527.4484547583979 5402.8543297535989 5533.1118240767983 5518.9534007807988 5567.0920399871984 5972.0229462527986 5663.3693183999985 5688.8544803327986 5977.6863155711981 5728.4980655615991 5552.933616691198 5473.6464462335989 5725.6663809023985 5419.844437708799 5810.6169206783979 5298.0819973631988 5567.0920399871984 5317.9037899775985 5323.5671592959989 5286.7552587263981 5901.2308297727986 6056.973486028799 5943.7060996607988 5991.8447388671984 6054.1418013695984 6286.3399434239982 6682.7757957119984 6892.3204604927987 6858.3402445823976 6578.0034633215982 6153.2507644415991 6405.2706991103978 6572.3400940031979 6728.0827502591983 6515.7064008191983 6541.1915627519984 5969.1912615935989 6235.369619558398 5858.7555598847985 5748.3198581759989 5739.8248041983979 @ 2 5751.1515428351986 5745.4881735167983 6204.2210883071984 6263.6864661503978 6167.4091877375986 6204.2210883071984 6258.0230968319984 5830.4387132927986 5748.3198581759989 5739.8248041983979 5810.6169206783979 5980.5180002303978 6088.1220172799985 6000.3397928447985 5972.0229462527986 6127.7656025087981 6141.9240258047985 6181.567611033599 6056.973486028799 6597.825255935998 6170.2408723967983 5909.7258837503978 5892.7357757951986 6107.9438098943983 6241.0329888767983 6139.0923411455988 6110.7754945535989 6376.953852518398 6207.0527729663982 6201.3894036479987 6215.5478269439982 6269.3498354687981 6229.7062502399986 6042.8150627327987 5986.1332309095924 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 665341122.57961047 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 164.91204000000016 174.33036000000018 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 174.0323265600002 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 11 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 4955.4481535999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 27 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 6 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 12 "$s" resize 19 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 161.54400000000018 0 "$s" row 1 170.68800000000019 458732914.79040062 "$s" row 2 170.99280000000019 475012836.23307323 "$s" row 3 171.29760000000019 491445668.64734268 "$s" row 4 171.60240000000019 508112964.55139393 "$s" row 5 171.90720000000019 524851618.90885705 "$s" row 6 172.21200000000019 541957259.5981524 "$s" row 7 172.51680000000019 559185229.06472516 "$s" row 8 172.82160000000019 576586497.63244116 "$s" row 9 172.97400000000019 585322811.14300489 "$s" row 10 173.12640000000019 594069318.71834195 "$s" row 11 173.27880000000019 602876990.68231761 "$s" row 12 173.43120000000019 611694856.71106637 "$s" row 13 173.58360000000019 620573887.12845397 "$s" row 14 173.73600000000019 629442723.48106837 "$s" row 15 173.88840000000019 638382918.28709459 "$s" row 16 174.04080000000019 647323113.09312081 "$s" row 17 174.19320000000019 656334666.35255885 "$s" row 18 174.34560000000019 665346219.61199701 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1286 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 12.207240000000011 29.550360000000033 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 146.77644000000015 158.40456000000017 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 514.5171025766399 513.92244879820782 513.61096348569583 @ 95 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 2259.6843580415994 @ 2 2338.9715284991994 2401.2685910015994 2404.1002756607995 2406.9319603199992 2409.7636449791994 2412.5953296383996 2409.7636449791994 @ 2 2412.5953296383996 @ 2 2415.4270142975993 2418.2586989567994 @ 4 2500.3775540735992 2508.8726080511992 2506.0409233919995 2497.5458694143995 2506.0409233919995 2503.2092387327993 2497.5458694143995 3070.1323292972534 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 48 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 161.54400000000018 11355.055483391998 "$s" row 1 174.34560000000019 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 46 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 12260 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 16 "$s" resize 15 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 161.54400000000018 0 "$s" row 1 170.68800000000019 0 "$s" row 2 170.99280000000019 927 "$s" row 3 171.29760000000019 1870 "$s" row 4 171.60240000000019 2832 "$s" row 5 171.90720000000019 3804 "$s" row 6 172.21200000000019 4807 "$s" row 7 172.51680000000019 5831 "$s" row 8 172.82160000000019 6850 "$s" row 9 173.12640000000019 7890 "$s" row 10 173.43120000000019 8952 "$s" row 11 173.73600000000019 10034 "$s" row 12 174.04080000000019 11138 "$s" row 13 174.19320000000019 11699 "$s" row 14 174.34560000000019 12260 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 5 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 33 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16)

CADSWES added rows for 0 flow and 0 power (required by RiverWare). CADSWES added extended the table to add rows for operating heads below 64 ft. This is only to prevent table interpolation errors at intermediate points in the solution. The final solution will not end up in this range. (These are not real power curves.) CADSWES removed the low flow rows at each operating head to make the curves concave (required by RiverWare).} "$s" resize 27 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 9.144000000000009 0 0 "$s" row 1 9.144000000000009 3114.8531251199993 251 "$s" row 2 9.144000000000009 4955.4481535999985 333 "$s" row 3 12.192000000000013 0 0 "$s" row 4 12.192000000000013 3114.8531251199993 420 "$s" row 5 12.192000000000013 4955.4481535999985 550 "$s" row 6 18.288000000000018 0 0 "$s" row 7 18.288000000000018 1982.1792614399994 320 "$s" row 8 18.288000000000018 4955.4481535999985 740 "$s" row 9 19.507200000000022 0 0 "$s" row 10 19.507200000000022 2845.6815881218631 498.06621393 "$s" row 11 19.507200000000022 4955.4481535999985 832.84624181000004 "$s" row 12 21.122640000000022 0 0 "$s" row 13 21.122640000000022 2845.6815881218631 539.31232226999998 "$s" row 14 21.122640000000022 4955.4481535999985 901.81632120999996 "$s" row 15 22.875240000000023 0 0 "$s" row 16 22.875240000000023 2845.6815881218631 587.05894434000004 "$s" row 17 22.875240000000023 4955.4481535999985 983.50691372999995 "$s" row 18 24.627840000000024 0 0 "$s" row 19 24.627840000000024 2845.6815881218631 634.90057579999996 "$s" row 20 24.627840000000024 4955.4481535999985 1067.0795970900001 "$s" row 21 27.035760000000028 0 0 "$s" row 22 27.035760000000028 2845.6815881218631 698.98642909 "$s" row 23 27.035760000000028 4955.4481535999985 1180.7808961999999 "$s" row 24 29.443680000000029 0 0 "$s" row 25 29.443680000000029 2845.6815881218631 762.30315872000006 "$s" row 26 29.443680000000029 4955.4481535999985 1286.4991525400001 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1369.95 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 29 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 161.54400000000018 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 38 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 146.77644000000015 149.03196000000014 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 73 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 148.66824216000018 NaN @ 72 "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 55 "$s" resize 120 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 18 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 0 146.30400000000014 146.30400000000014 "$s" row 1 0 146.76120000000014 146.76120000000014 "$s" row 2 0 146.91360000000014 146.91360000000014 "$s" row 3 0 147.52320000000014 147.52320000000014 "$s" row 4 0 148.13280000000015 148.13280000000015 "$s" row 5 0 148.28520000000015 148.28520000000015 "$s" row 6 0 148.74240000000015 148.74240000000015 "$s" row 7 0 149.80920000000015 149.80920000000015 "$s" row 8 283.16846591999996 146.30400000000014 146.36496000000014 "$s" row 9 283.16846591999996 146.76120000000014 146.82216000000014 "$s" row 10 283.16846591999996 146.91360000000014 146.97456000000014 "$s" row 11 283.16846591999996 147.52320000000014 147.52320000000014 "$s" row 12 283.16846591999996 148.13280000000015 148.13280000000015 "$s" row 13 283.16846591999996 148.28520000000015 148.30044000000015 "$s" row 14 283.16846591999996 148.74240000000015 148.74240000000015 "$s" row 15 566.33693183999992 146.30400000000014 146.48688000000016 "$s" row 16 566.33693183999992 146.76120000000014 146.94408000000016 "$s" row 17 566.33693183999992 146.91360000000014 147.06600000000014 "$s" row 18 566.33693183999992 147.52320000000014 147.58416000000014 "$s" row 19 566.33693183999992 148.13280000000015 148.13280000000015 "$s" row 20 566.33693183999992 148.28520000000015 148.33092000000016 "$s" row 21 566.33693183999992 148.74240000000015 148.77288000000016 "$s" row 22 566.33693183999992 149.80920000000015 149.83968000000016 "$s" row 23 849.50539775999982 146.30400000000014 146.63928000000016 "$s" row 24 849.50539775999982 146.76120000000014 147.06600000000014 "$s" row 25 849.50539775999982 146.91360000000014 147.18792000000016 "$s" row 26 849.50539775999982 147.52320000000014 147.64512000000016 "$s" row 27 849.50539775999982 148.13280000000015 148.19376000000014 "$s" row 28 849.50539775999982 148.28520000000015 148.37664000000015 "$s" row 29 849.50539775999982 148.74240000000015 148.80336000000014 "$s" row 30 1132.6738636799998 146.30400000000014 146.85264000000015 "$s" row 31 1132.6738636799998 146.76120000000014 147.21840000000014 "$s" row 32 1132.6738636799998 146.91360000000014 147.34032000000016 "$s" row 33 1132.6738636799998 147.52320000000014 147.76704000000015 "$s" row 34 1132.6738636799998 148.13280000000015 148.25472000000016 "$s" row 35 1132.6738636799998 148.28520000000015 148.45284000000015 "$s" row 36 1132.6738636799998 148.74240000000015 148.86432000000016 "$s" row 37 1415.8423295999996 146.30400000000014 147.09648000000016 "$s" row 38 1415.8423295999996 146.76120000000014 147.37080000000014 "$s" row 39 1415.8423295999996 146.91360000000014 147.52320000000014 "$s" row 40 1415.8423295999996 147.52320000000014 147.88896000000014 "$s" row 41 1415.8423295999996 148.13280000000015 148.34616000000014 "$s" row 42 1415.8423295999996 148.28520000000015 148.55952000000016 "$s" row 43 1415.8423295999996 148.74240000000015 148.95576000000014 "$s" row 44 1415.8423295999996 149.80920000000015 149.87016000000014 "$s" row 45 1982.1792614399997 146.30400000000014 147.58416000000014 "$s" row 46 1982.1792614399997 146.76120000000014 147.73656000000014 "$s" row 47 1982.1792614399997 146.91360000000014 147.88896000000014 "$s" row 48 1982.1792614399997 147.52320000000014 148.19376000000014 "$s" row 49 1982.1792614399997 148.13280000000015 148.59000000000015 "$s" row 50 1982.1792614399997 148.28520000000015 148.77288000000016 "$s" row 51 1982.1792614399997 148.74240000000015 149.13864000000015 "$s" row 52 1982.1792614399997 149.80920000000015 149.96160000000015 "$s" row 53 2831.6846591999993 146.30400000000014 148.28520000000015 "$s" row 54 2831.6846591999993 146.76120000000014 148.40712000000016 "$s" row 55 2831.6846591999993 146.91360000000014 148.49856000000014 "$s" row 56 2831.6846591999993 147.52320000000014 148.77288000000016 "$s" row 57 2831.6846591999993 148.13280000000015 149.07768000000016 "$s" row 58 2831.6846591999993 148.28520000000015 149.23008000000016 "$s" row 59 2831.6846591999993 148.74240000000015 149.44344000000015 "$s" row 60 2831.6846591999993 149.80920000000015 150.11400000000015 "$s" row 61 3398.0215910399993 146.30400000000014 148.68144000000015 "$s" row 62 3398.0215910399993 146.76120000000014 148.80336000000014 "$s" row 63 3398.0215910399993 146.91360000000014 148.89480000000015 "$s" row 64 3398.0215910399993 147.52320000000014 149.13864000000015 "$s" row 65 3398.0215910399993 148.13280000000015 149.41296000000014 "$s" row 66 3398.0215910399993 148.28520000000015 149.50440000000015 "$s" row 67 3398.0215910399993 148.74240000000015 149.68728000000016 "$s" row 68 4247.5269887999993 146.30400000000014 149.26056000000014 "$s" row 69 4247.5269887999993 146.76120000000014 149.35200000000015 "$s" row 70 4247.5269887999993 146.91360000000014 149.44344000000015 "$s" row 71 4247.5269887999993 147.52320000000014 149.65680000000015 "$s" row 72 4247.5269887999993 148.13280000000015 149.87016000000014 "$s" row 73 4247.5269887999993 148.28520000000015 149.96160000000015 "$s" row 74 4247.5269887999993 148.74240000000015 150.11400000000015 "$s" row 75 5663.3693183999985 146.30400000000014 150.14448000000016 "$s" row 76 5663.3693183999985 146.76120000000014 150.23592000000016 "$s" row 77 5663.3693183999985 146.91360000000014 150.26640000000015 "$s" row 78 5663.3693183999985 147.52320000000014 150.44928000000016 "$s" row 79 5663.3693183999985 148.13280000000015 150.60168000000016 "$s" row 80 5663.3693183999985 148.28520000000015 150.63216000000017 "$s" row 81 5663.3693183999985 148.74240000000015 150.81504000000015 "$s" row 82 5663.3693183999985 149.80920000000015 151.15032000000016 "$s" row 83 7079.2116479999986 146.30400000000014 150.99792000000016 "$s" row 84 7079.2116479999986 146.76120000000014 151.02840000000015 "$s" row 85 7079.2116479999986 146.91360000000014 151.05888000000016 "$s" row 86 7079.2116479999986 147.52320000000014 151.18080000000015 "$s" row 87 7079.2116479999986 148.13280000000015 151.30272000000016 "$s" row 88 7079.2116479999986 148.28520000000015 151.30272000000016 "$s" row 89 7079.2116479999986 148.74240000000015 151.45512000000016 "$s" row 90 8495.0539775999987 146.30400000000014 151.71420000000015 "$s" row 91 8495.0539775999987 146.91360000000014 151.79040000000015 "$s" row 92 8495.0539775999987 147.52320000000014 151.86660000000015 "$s" row 93 8495.0539775999987 148.13280000000015 151.94280000000015 "$s" row 94 8495.0539775999987 148.74240000000015 152.09520000000015 "$s" row 95 8495.0539775999987 149.80920000000015 152.33904000000015 "$s" row 96 11326.738636799997 146.30400000000014 153.00960000000015 "$s" row 97 11326.738636799997 146.91360000000014 153.04770000000016 "$s" row 98 11326.738636799997 147.52320000000014 153.08580000000015 "$s" row 99 11326.738636799997 148.13280000000015 153.16200000000015 "$s" row 100 11326.738636799997 148.74240000000015 153.31440000000015 "$s" row 101 11326.738636799997 149.80920000000015 153.54300000000015 "$s" row 102 14158.423295999997 146.30400000000014 154.07640000000015 "$s" row 103 14158.423295999997 148.74240000000015 154.38120000000015 "$s" row 104 14158.423295999997 149.80920000000015 154.60980000000015 "$s" row 105 16990.107955199997 146.30400000000014 155.06700000000015 "$s" row 106 16990.107955199997 148.74240000000015 155.29560000000018 "$s" row 107 16990.107955199997 149.80920000000015 155.52420000000018 "$s" row 108 19821.792614399998 146.30400000000014 155.98140000000018 "$s" row 109 19821.792614399998 148.74240000000015 156.13380000000018 "$s" row 110 19821.792614399998 149.80920000000015 156.28620000000018 "$s" row 111 22653.477273599994 146.30400000000014 156.81960000000018 "$s" row 112 22653.477273599994 148.74240000000015 156.97200000000018 "$s" row 113 22653.477273599994 149.80920000000015 157.04820000000018 "$s" row 114 25485.161932799994 146.30400000000014 157.58160000000018 "$s" row 115 25485.161932799994 148.74240000000015 157.65780000000018 "$s" row 116 25485.161932799994 149.80920000000015 157.73400000000018 "$s" row 117 28316.846591999994 146.30400000000014 158.26740000000018 "$s" row 118 28316.846591999994 148.74240000000015 158.34360000000018 "$s" row 119 28316.846591999994 149.80920000000015 158.41980000000018 "$o" {TableSlot} {Tail Water Reference Elevation} set s "$o.Tail Water Reference Elevation" "$s" order 57 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 146.76120000000014 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 26 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 206613304.82159644 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 8 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 713584534.11840093 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 713584534.11840093 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 35 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 576586497.63244116 458732914.79040062 0 "$s" row 1 NaN 656334666.35255885 458732914.79040062 "$s" row 2 NaN NaN 656334666.35255885 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 15 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 172.51680000000019 170.68800000000019 170.68800000000019 "$s" row 1 NaN 174.34560000000019 172.51680000000019 "$s" row 2 NaN NaN 174.34560000000019 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 53 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 54 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 51 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 7079.2116479999986 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 44 "$s" sourceSlotName {Wanapum.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 665346219.61199701 11355.055483391998 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 47 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 117853582.84204049 0 0 "$s" row 1 NaN 206613304.82159647 117853582.84204048 "$s" row 2 NaN NaN 206613304.82159647 "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 28 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 39 "$s" resize 4 4 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 22.978176803308259 2265.3477273599997 0 0 "$s" row 1 NaN NaN 3964.3585228799989 2845.6815881218631 "$s" row 2 NaN NaN NaN 3964.3585228799989 "$s" row 3 NaN NaN NaN 4955.4481535999985 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 63 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 25.603200000000026 18.288000000000018 12.192000000000013 "$s" row 1 NaN 25.603200000000026 18.288000000000018 "$s" row 2 NaN NaN 26.822400000000027 "$s" row 3 NaN NaN 29.260800000000032 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 61 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 60 "$s" resize 3 4 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 148.28520000000015 1415.8423295999996 566.33693183999992 2123.7634943999997 "$s" row 1 NaN NaN 4247.5269887999993 5663.3693183999985 "$s" row 2 NaN NaN NaN 8495.0539775999987 "$o" {TableSlot} {Convolved Stage Flow Tailwater Table} set s "$o.Convolved Stage Flow Tailwater Table" "$s" order 7 "$s" sourceSlotName {Wanapum.Stage Flow Tailwater Table} "$s" resize 154 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Downstream Stage} {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 146.30400000000014 0 146.30400000000014 "$s" row 1 146.30400000000014 283.16846591999996 146.36496000000014 "$s" row 2 146.30400000000014 566.33693183999992 146.48688000000016 "$s" row 3 146.30400000000014 849.50539775999982 146.63928000000016 "$s" row 4 146.30400000000014 1132.6738636799998 146.85264000000015 "$s" row 5 146.30400000000014 1415.8423295999996 147.09648000000016 "$s" row 6 146.30400000000014 1982.1792614399997 147.58416000000014 "$s" row 7 146.30400000000014 2831.6846591999993 148.28520000000015 "$s" row 8 146.30400000000014 3398.0215910399993 148.68144000000015 "$s" row 9 146.30400000000014 4247.5269887999993 149.26056000000014 "$s" row 10 146.30400000000014 5663.3693183999985 150.14448000000016 "$s" row 11 146.30400000000014 7079.2116479999986 150.99792000000016 "$s" row 12 146.30400000000014 8495.0539775999987 151.71420000000015 "$s" row 13 146.30400000000014 11326.738636799997 153.00960000000015 "$s" row 14 146.30400000000014 14158.423295999997 154.07640000000015 "$s" row 15 146.30400000000014 16990.107955199997 155.06700000000015 "$s" row 16 146.30400000000014 19821.792614399998 155.98140000000018 "$s" row 17 146.30400000000014 22653.477273599994 156.81960000000018 "$s" row 18 146.30400000000014 25485.161932799994 157.58160000000018 "$s" row 19 146.30400000000014 28316.846591999994 158.26740000000018 "$s" row 20 146.76120000000014 0 146.76120000000014 "$s" row 21 146.76120000000014 283.16846591999996 146.82216000000014 "$s" row 22 146.76120000000014 566.33693183999992 146.94408000000016 "$s" row 23 146.76120000000014 849.50539775999982 147.06600000000014 "$s" row 24 146.76120000000014 1132.6738636799998 147.21840000000014 "$s" row 25 146.76120000000014 1415.8423295999996 147.37080000000014 "$s" row 26 146.76120000000014 1982.1792614399997 147.73656000000014 "$s" row 27 146.76120000000014 2831.6846591999993 148.40712000000016 "$s" row 28 146.76120000000014 3398.0215910399993 148.80336000000014 "$s" row 29 146.76120000000014 4247.5269887999993 149.35200000000015 "$s" row 30 146.76120000000014 5663.3693183999985 150.23592000000016 "$s" row 31 146.76120000000014 7079.2116479999986 151.02840000000015 "$s" row 32 146.76120000000014 8495.0539775999987 151.77135000000015 "$s" row 33 146.76120000000014 11326.738636799997 153.03817500000017 "$s" row 34 146.76120000000014 14158.423295999997 154.13355000000016 "$s" row 35 146.76120000000014 16990.107955199997 155.10986250000016 "$s" row 36 146.76120000000014 19821.792614399998 156.00997500000017 "$s" row 37 146.76120000000014 22653.477273599994 156.84817500000017 "$s" row 38 146.76120000000014 25485.161932799994 157.59588750000017 "$s" row 39 146.76120000000014 28316.846591999994 158.28168750000017 "$s" row 40 146.91360000000014 0 146.91360000000014 "$s" row 41 146.91360000000014 283.16846591999996 146.97456000000014 "$s" row 42 146.91360000000014 566.33693183999992 147.06600000000014 "$s" row 43 146.91360000000014 849.50539775999982 147.18792000000016 "$s" row 44 146.91360000000014 1132.6738636799998 147.34032000000016 "$s" row 45 146.91360000000014 1415.8423295999996 147.52320000000014 "$s" row 46 146.91360000000014 1982.1792614399997 147.88896000000014 "$s" row 47 146.91360000000014 2831.6846591999993 148.49856000000014 "$s" row 48 146.91360000000014 3398.0215910399993 148.89480000000015 "$s" row 49 146.91360000000014 4247.5269887999993 149.44344000000015 "$s" row 50 146.91360000000014 5663.3693183999985 150.26640000000015 "$s" row 51 146.91360000000014 7079.2116479999986 151.05888000000016 "$s" row 52 146.91360000000014 8495.0539775999987 151.79040000000015 "$s" row 53 146.91360000000014 11326.738636799997 153.04770000000016 "$s" row 54 146.91360000000014 14158.423295999997 154.15260000000015 "$s" row 55 146.91360000000014 16990.107955199997 155.12415000000016 "$s" row 56 146.91360000000014 19821.792614399998 156.01950000000016 "$s" row 57 146.91360000000014 22653.477273599994 156.85770000000019 "$s" row 58 146.91360000000014 25485.161932799994 157.60065000000017 "$s" row 59 146.91360000000014 28316.846591999994 158.28645000000017 "$s" row 60 147.52320000000014 0 147.52320000000014 "$s" row 61 147.52320000000014 283.16846591999996 147.52320000000014 "$s" row 62 147.52320000000014 566.33693183999992 147.58416000000014 "$s" row 63 147.52320000000014 849.50539775999982 147.64512000000016 "$s" row 64 147.52320000000014 1132.6738636799998 147.76704000000015 "$s" row 65 147.52320000000014 1415.8423295999996 147.88896000000014 "$s" row 66 147.52320000000014 1982.1792614399997 148.19376000000014 "$s" row 67 147.52320000000014 2831.6846591999993 148.77288000000016 "$s" row 68 147.52320000000014 3398.0215910399993 149.13864000000015 "$s" row 69 147.52320000000014 4247.5269887999993 149.65680000000015 "$s" row 70 147.52320000000014 5663.3693183999985 150.44928000000016 "$s" row 71 147.52320000000014 7079.2116479999986 151.18080000000015 "$s" row 72 147.52320000000014 8495.0539775999987 151.86660000000015 "$s" row 73 147.52320000000014 11326.738636799997 153.08580000000015 "$s" row 74 147.52320000000014 14158.423295999997 154.22880000000015 "$s" row 75 147.52320000000014 16990.107955199997 155.18130000000016 "$s" row 76 147.52320000000014 19821.792614399998 156.05760000000018 "$s" row 77 147.52320000000014 22653.477273599994 156.89580000000018 "$s" row 78 147.52320000000014 25485.161932799994 157.61970000000019 "$s" row 79 147.52320000000014 28316.846591999994 158.30550000000017 "$s" row 80 148.13280000000015 0 148.13280000000015 "$s" row 81 148.13280000000015 283.16846591999996 148.13280000000015 "$s" row 82 148.13280000000015 566.33693183999992 148.13280000000015 "$s" row 83 148.13280000000015 849.50539775999982 148.19376000000014 "$s" row 84 148.13280000000015 1132.6738636799998 148.25472000000016 "$s" row 85 148.13280000000015 1415.8423295999996 148.34616000000014 "$s" row 86 148.13280000000015 1982.1792614399997 148.59000000000015 "$s" row 87 148.13280000000015 2831.6846591999993 149.07768000000016 "$s" row 88 148.13280000000015 3398.0215910399993 149.41296000000014 "$s" row 89 148.13280000000015 4247.5269887999993 149.87016000000014 "$s" row 90 148.13280000000015 5663.3693183999985 150.60168000000016 "$s" row 91 148.13280000000015 7079.2116479999986 151.30272000000016 "$s" row 92 148.13280000000015 8495.0539775999987 151.94280000000015 "$s" row 93 148.13280000000015 11326.738636799997 153.16200000000015 "$s" row 94 148.13280000000015 14158.423295999997 154.30500000000015 "$s" row 95 148.13280000000015 16990.107955199997 155.23845000000017 "$s" row 96 148.13280000000015 19821.792614399998 156.09570000000019 "$s" row 97 148.13280000000015 22653.477273599994 156.93390000000016 "$s" row 98 148.13280000000015 25485.161932799994 157.63875000000019 "$s" row 99 148.13280000000015 28316.846591999994 158.32455000000019 "$s" row 100 148.28520000000015 0 148.28520000000015 "$s" row 101 148.28520000000015 283.16846591999996 148.30044000000015 "$s" row 102 148.28520000000015 566.33693183999992 148.33092000000016 "$s" row 103 148.28520000000015 849.50539775999982 148.37664000000015 "$s" row 104 148.28520000000015 1132.6738636799998 148.45284000000015 "$s" row 105 148.28520000000015 1415.8423295999996 148.55952000000016 "$s" row 106 148.28520000000015 1982.1792614399997 148.77288000000016 "$s" row 107 148.28520000000015 2831.6846591999993 149.23008000000016 "$s" row 108 148.28520000000015 3398.0215910399993 149.50440000000015 "$s" row 109 148.28520000000015 4247.5269887999993 149.96160000000015 "$s" row 110 148.28520000000015 5663.3693183999985 150.63216000000017 "$s" row 111 148.28520000000015 7079.2116479999986 151.30272000000016 "$s" row 112 148.28520000000015 8495.0539775999987 151.98090000000013 "$s" row 113 148.28520000000015 11326.738636799997 153.20010000000013 "$s" row 114 148.28520000000015 14158.423295999997 154.32405000000014 "$s" row 115 148.28520000000015 16990.107955199997 155.25273750000017 "$s" row 116 148.28520000000015 19821.792614399998 156.10522500000019 "$s" row 117 148.28520000000015 22653.477273599994 156.94342500000019 "$s" row 118 148.28520000000015 25485.161932799994 157.64351250000018 "$s" row 119 148.28520000000015 28316.846591999994 158.32931250000019 "$s" row 120 148.74240000000015 0 148.74240000000015 "$s" row 121 148.74240000000015 283.16846591999996 148.74240000000015 "$s" row 122 148.74240000000015 566.33693183999992 148.77288000000016 "$s" row 123 148.74240000000015 849.50539775999982 148.80336000000014 "$s" row 124 148.74240000000015 1132.6738636799998 148.86432000000016 "$s" row 125 148.74240000000015 1415.8423295999996 148.95576000000014 "$s" row 126 148.74240000000015 1982.1792614399997 149.13864000000015 "$s" row 127 148.74240000000015 2831.6846591999993 149.44344000000015 "$s" row 128 148.74240000000015 3398.0215910399993 149.68728000000016 "$s" row 129 148.74240000000015 4247.5269887999993 150.11400000000015 "$s" row 130 148.74240000000015 5663.3693183999985 150.81504000000015 "$s" row 131 148.74240000000015 7079.2116479999986 151.45512000000016 "$s" row 132 148.74240000000015 8495.0539775999987 152.09520000000015 "$s" row 133 148.74240000000015 11326.738636799997 153.31440000000015 "$s" row 134 148.74240000000015 14158.423295999997 154.38120000000015 "$s" row 135 148.74240000000015 16990.107955199997 155.29560000000018 "$s" row 136 148.74240000000015 19821.792614399998 156.13380000000018 "$s" row 137 148.74240000000015 22653.477273599994 156.97200000000018 "$s" row 138 148.74240000000015 25485.161932799994 157.65780000000018 "$s" row 139 148.74240000000015 28316.846591999994 158.34360000000018 "$s" row 140 149.80920000000015 0 149.80920000000015 "$s" row 141 149.80920000000015 566.33693183999992 149.83968000000016 "$s" row 142 149.80920000000015 1415.8423295999996 149.87016000000014 "$s" row 143 149.80920000000015 1982.1792614399997 149.96160000000015 "$s" row 144 149.80920000000015 2831.6846591999993 150.11400000000015 "$s" row 145 149.80920000000015 5663.3693183999985 151.15032000000016 "$s" row 146 149.80920000000015 8495.0539775999987 152.33904000000015 "$s" row 147 149.80920000000015 11326.738636799997 153.54300000000015 "$s" row 148 149.80920000000015 14158.423295999997 154.60980000000015 "$s" row 149 149.80920000000015 16990.107955199997 155.52420000000018 "$s" row 150 149.80920000000015 19821.792614399998 156.28620000000018 "$s" row 151 149.80920000000015 22653.477273599994 157.04820000000018 "$s" row 152 149.80920000000015 25485.161932799994 157.73400000000018 "$s" row 153 149.80920000000015 28316.846591999994 158.41980000000018 "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Bypass} set s "$o.Bypass" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 651.28747161599983 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Table} set s "$o.Bypass Table" "$s" order 500 "$s" resize 5 2 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Max Bypass Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 170.68800000000019 0 "$s" row 1 170.74896000000018 368.11900569599993 "$s" row 2 172.27296000000018 464.39628410879988 "$s" row 3 173.73600000000019 555.01019320319983 "$s" row 4 174.34560000000019 594.65377843199985 "$o" {SeriesSlot} {Bypass Drift Index} set s "$o.Bypass Drift Index" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Index Table} set s "$o.Bypass Index Table" "$s" order 500 "$s" resize 27 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Bypass Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 1 172.57776000000018 25.485161932799993 "$s" row 1 1 173.73600000000019 56.633693183999988 "$s" row 2 1 174.34560000000019 73.623801139199983 "$s" row 3 1 175.26000000000019 104.77233239039997 "$s" row 4 2 170.74896000000018 45.306954547199993 "$s" row 5 2 172.12056000000018 87.782224435199979 "$s" row 6 2 173.73600000000019 155.74265625599995 "$s" row 7 2 174.34560000000019 172.73276421119996 "$s" row 8 2 175.26000000000019 212.37634943999996 "$s" row 9 3 169.68216000000018 104.77233239039997 "$s" row 10 3 171.20616000000018 164.23771023359996 "$s" row 11 3 172.73016000000018 235.02982671359996 "$s" row 12 3 173.37024000000017 263.34667330559995 "$s" row 13 3 174.28464000000017 311.48531251199989 "$s" row 14 3 175.22952000000018 368.11900569599993 "$s" row 15 4 170.32224000000016 237.86151137279995 "$s" row 16 4 171.9376800000002 319.98036648959993 "$s" row 17 4 173.33976000000018 387.94079831039988 "$s" row 18 4 173.73600000000019 404.9309062655999 "$s" row 19 4 174.01032000000018 421.92101422079992 "$s" row 20 4 174.92472000000018 475.72302274559991 "$s" row 21 4 175.22952000000018 489.88144604159987 "$s" row 22 5 170.74896000000018 368.11900569599993 "$s" row 23 5 172.27296000000018 464.39628410879988 "$s" row 24 5 173.73600000000019 555.01019320319983 "$s" row 25 5 174.34560000000019 594.65377843199985 "$s" row 26 5 175.26000000000019 654.11915627519988 "$o" {SeriesSlot} {Bypass Capacity Fraction} set s "$o.Bypass Capacity Fraction" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bypass Capacity} set s "$o.Bypass Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 651.28747161599983 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Capacity Table} set s "$o.Bypass Capacity Table" "$s" order 500 "$s" resize 5 2 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {Storage} {Bypass Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 3255984.2885342282 368.11900569599993 "$s" row 2 86669938.701066032 464.39628410879988 "$s" row 3 170709808.69066778 555.01019320319983 "$s" row 4 206613304.82159644 594.65377843199985 "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {Priest Rapids} set o "$ws.Priest Rapids" $ws SimObj $obj {LevelPowerReservoir} 324 703 {} 1072 1123 774 314 "$o" geospatialCoords 0 0 774 314 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5038 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {EIS Table Lookup} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {None} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Base Value Plus Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Base Value Plus Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999995 "$s" setFSeries {cms} {04-20-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-20-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 5983.3496848895984 5334.8938979327986 5637.8841564671984 6048.4784320511981 6368.4587985407989 6527.033139455998 7090.5383866367984 7699.3505883647977 7263.2711508479979 6408.1023837695984 6637.4688411647985 5844.597136588799 6212.7161422847985 6507.2113468415982 6657.2906337791983 6810.201605375998 7217.964196300798 6855.5085599231979 5666.2010030591982 4901.6461450751985 6022.993270118398 6096.6170712575986 5465.1513922559989 5960.696207615998 5450.9929689599985 5037.5670087167991 5026.2402700799985 5000.7551081471984 5516.1217161215991 5717.1713269247984 5833.2703979519983 5932.3793610239982 5623.725733171198 5581.2504632831988 5456.6563382783979 5711.5079576063981 5728.4980655615991 5940.8744150015991 6283.5082587647985 6207.0527729663982 6243.864673535998 6311.8251053567983 6374.1221678591983 6408.1023837695984 6255.1914121727987 6158.9141337599985 6413.7657530879987 6493.0529235455988 6314.656790015998 6141.9240258047985 5887.0724064767983 5844.597136588799 6102.280440575998 6561.0133553663982 6586.4985172991983 5952.201153638398 4907.3095143935989 5586.9138326015991 5705.8445882879987 6039.9833780735989 6348.6370059263982 6255.1914121727987 5983.3496848895984 6357.1320599039982 6323.151843993599 6317.4884746751986 6342.9736366079987 5926.7159917055988 5881.409037158398 5711.5079576063981 5782.3000740863981 5632.220787148799 5612.3989945343983 5425.5078070271984 5281.0918894079987 5567.0920399871984 5793.6268127231979 6258.0230968319984 5991.8447388671984 6427.9241763839982 6767.7263354879979 6450.5776536575986 6464.736076953599 6311.8251053567983 6442.0825996799986 6243.864673535998 6178.7359263743983 6300.4983667199986 6476.0628155903978 5821.9436593151986 5357.5473752063981 5292.4186280447984 5821.9436593151986 5620.8940485119983 5606.7356252159989 5652.0425797631988 5785.1317587455987 5864.4189292031979 5550.1019320319983 5686.0227956735989 5932.3793610239982 5683.1911110143983 5507.6266621439981 5459.4880229375985 5578.4187786239982 5320.7354746367992 5578.4187786239982 5329.2305286143983 5649.2108951039982 5419.844437708799 5484.9731848703987 5402.8543297535989 5601.0722558975986 5813.4486053375986 5909.7258837503978 5861.5872445439982 6105.1121252351986 6226.8745655807988 6221.2111962623976 6218.3795116031979 6940.4590996991983 6872.498667878398 7101.8651252735981 6886.6570911743975 6575.1717786623976 6957.4492076543975 7050.8948014079979 7036.7363781119984 6354.3003752447985 4352.2993211903986 5612.3989945343983 5878.5773524991982 5782.3000740863981 5796.4584973823985 5841.7654519295984 5802.1218667007988 6280.6765741055988 6283.5082587647985 6207.0527729663982 6277.8448894463982 6300.4983667199986 5855.9238752255987 5720.0030115839982 5717.1713269247984 5720.0030115839982 5957.8645229567983 6042.8150627327987 5887.0724064767983 5932.3793610239982 6368.4587985407989 7141.5087105023977 7150.0037644799977 6784.7164434431979 4839.3490825727986 5875.7456678399985 5521.7850854399985 5550.1019320319983 5819.1119746559989 5966.3595769343983 6048.4784320511981 6167.4091877375986 6750.7362275327987 6362.7954292223976 6289.1716280831979 6306.161736038398 6337.3102672895984 6113.6071792127987 5858.7555598847985 5843.8269183614966 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 5097.0323865600076 64482556.722370647 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 146.77644000000015 149.03196000000014 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 148.66824216000018 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 10 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5097.0323865599985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 26 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 6 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 11 "$s" resize 16 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 146.76120000000014 0 "$s" row 1 146.91360000000014 3781998.0308275255 "$s" row 2 147.21840000000014 11560069.452718096 "$s" row 3 147.37080000000014 15586725.038100503 "$s" row 4 147.52320000000014 19613380.623482909 "$s" row 5 147.67560000000014 23864305.633873954 "$s" row 6 147.82800000000015 28115230.644265 "$s" row 7 147.98040000000015 32417125.978521645 "$s" row 8 148.13280000000015 36800573.830963254 "$s" row 9 148.28520000000015 41316544.525455423 "$s" row 10 148.43760000000015 45822321.155174471 "$s" row 11 148.59000000000015 50450426.562170953 "$s" row 12 148.68144000000015 52876613.978173517 "$s" row 13 148.74240000000015 55068337.904394321 "$s" row 14 149.04720000000015 64487653.754757218 "$s" row 15 155.44800000000018 171260288.18841621 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 1186 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 981 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 17.693640000000016 29.855160000000033 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 118.88724000000013 140.80236000000014 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 4.0209922160639993 3.5679226705919991 3.3130710512639991 @ 95 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 2738.2390654463993 2735.4073807871991 @ 3 2749.5658040831991 2885.4866677247992 3381.0314830847992 3366.8730597887993 3012.9124773887993 1209.1293494783997 2245.5259347455994 2588.1597785087993 2607.981571123199 2616.4766251007995 2622.139994419199 2630.6350483967994 @ 2 2607.981571123199 2585.3280938495991 2579.6647245311992 2574.0013552127994 @ 2 2576.8330398719995 2588.1597785087993 3452.500372198348 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 47 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 146.76120000000014 11355.055483391998 "$s" row 1 149.04720000000015 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 45 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 3722.9499999999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 15 "$s" resize 9 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 146.76120000000014 0 "$s" row 1 146.91360000000014 208 "$s" row 2 147.21840000000014 640 "$s" row 3 13.411200000000013 1093 "$s" row 4 147.82800000000015 1579 "$s" row 5 148.13280000000015 2081 "$s" row 6 148.43760000000015 2608 "$s" row 7 148.74240000000015 3157 "$s" row 8 149.04720000000015 3723 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 32 "$s" userDescript {Revised 2016-10-31 with data from Andy Law, updated to avoid overlapping curves.

Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16)

CADSWES added rows for 0 flow and 0 power (required by RiverWare). CADSWES removed the low flow rows at each operating head to make the curves concave (required by RiverWare).} "$s" resize 24 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 16.764000000000017 0 0 "$s" row 1 16.764000000000017 2831.6846591999993 421 "$s" row 2 16.764000000000017 4020.992216063999 581.5 "$s" row 3 16.764000000000017 5097.0323865599985 704.70000000000005 "$s" row 4 22.875240000000023 0 0 "$s" row 5 22.875240000000023 2831.6846591999993 540.79999999999995 "$s" row 6 22.875240000000023 4020.992216063999 748.39999999999998 "$s" row 7 22.875240000000023 5097.0323865599985 909.70000000000005 "$s" row 8 24.627840000000024 0 0 "$s" row 9 24.627840000000024 2831.6846591999993 573.20000000000005 "$s" row 10 24.627840000000024 4020.992216063999 783.39999999999998 "$s" row 11 24.627840000000024 5097.0323865599985 942.29999999999995 "$s" row 12 26.794968000000026 0 0 "$s" row 13 26.794968000000026 2831.6846591999993 588.70000000000005 "$s" row 14 26.794968000000026 4020.992216063999 795.5 "$s" row 15 26.794968000000026 5097.0323865599985 944.60000000000002 "$s" row 16 28.962096000000031 0 0 "$s" row 17 28.962096000000031 2831.6846591999993 589.70000000000005 "$s" row 18 28.962096000000031 4020.992216063999 796.5 "$s" row 19 28.962096000000031 5097.0323865599985 945.60000000000002 "$s" row 20 29.870400000000032 0 0 "$s" row 21 29.870400000000032 2831.6846591999993 590.20000000000005 "$s" row 22 29.870400000000032 4020.992216063999 797 "$s" row 23 29.870400000000032 5097.0323865599985 946.10000000000002 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1186 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 28 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 146.7612 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 37 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 0 0.30480000000000035 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 57 "$s" userDescript {Data provided in Excel workbook: 2016-04-28-MidC_Value_of_Coordination_Mmodel_Plant_Performance_and_Tailwater_Tables.xslb from Scott Buehn (4/28/16). This matches the data in the model prior to 4/28/16} "$s" resize 23 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 18 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 118.87200000000013 "$s" row 1 566.33693183999992 120.70080000000013 "$s" row 2 849.50539775999982 121.31040000000013 "$s" row 3 1132.6738636799998 121.92000000000013 "$s" row 4 1415.8423295999996 122.37720000000013 "$s" row 5 1699.0107955199996 122.75820000000013 "$s" row 6 2265.3477273599997 123.44400000000013 "$s" row 7 2831.6846591999993 124.05360000000013 "$s" row 8 3398.0215910399993 124.66320000000013 "$s" row 9 3964.3585228799993 125.19660000000013 "$s" row 10 4530.6954547199994 125.73000000000013 "$s" row 11 5663.3693183999985 126.64440000000013 "$s" row 12 6796.0431820799986 127.40640000000013 "$s" row 13 7928.7170457599987 128.09220000000013 "$s" row 14 8495.0539775999987 128.39700000000013 "$s" row 15 11326.738636799997 129.84480000000013 "$s" row 16 14158.423295999997 131.06400000000014 "$s" row 17 16990.107955199997 132.43560000000014 "$s" row 18 19821.792614399998 133.50240000000014 "$s" row 19 22653.477273599994 134.72160000000014 "$s" row 20 28316.846591999994 136.55040000000014 "$s" row 21 33980.215910399995 138.68400000000014 "$s" row 22 39643.585228799995 140.81760000000014 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 25 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 64487653.754757218 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 7 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 305821943.19360048 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 86649550.571520135 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 34 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 45873291.479040071 0 0 "$s" row 1 NaN 64487653.754757218 28115230.644265 "$s" row 2 NaN NaN 64487653.754757218 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 14 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 147.82800000000015 146.76120000000014 146.76120000000014 "$s" row 1 NaN 149.04720000000015 147.82800000000015 "$s" row 2 NaN NaN 149.04720000000015 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 52 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 53 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 50 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 7079.2116479999986 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 43 "$s" sourceSlotName {Priest Rapids.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 64487653.754757218 11355.055483391998 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 46 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 28115230.644265 3781998.0308275255 3781998.0308275255 "$s" row 1 NaN 55068337.904394321 28115230.644265 "$s" row 2 NaN NaN 55068337.904394321 "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 27 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 38 "$s" resize 4 4 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 20.764572374485255 2265.3477273599997 530.76603920699051 0 "$s" row 1 NaN NaN 4020.992216063999 2831.6846591999993 "$s" row 2 NaN NaN NaN 4020.992216063999 "$s" row 3 NaN NaN NaN 5097.0323865599985 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 61 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 24.384000000000025 21.336000000000023 17.678400000000018 "$s" row 1 NaN 27.432000000000031 21.336000000000023 "$s" row 2 NaN NaN 23.774400000000025 "$s" row 3 NaN NaN 29.870400000000032 "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 58 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 1415.8423295999996 1415.8423295999996 0 "$s" row 1 NaN 5663.3693183999985 849.50539775999982 "$s" row 2 NaN NaN 1699.0107955199996 "$s" row 3 NaN NaN 5663.3693183999985 "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 500 "$s" resize 1 4 "$s" setRowLabels {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Bypass} set s "$o.Bypass" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 1805.1989702399994 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Table} set s "$o.Bypass Table" "$s" order 500 "$s" resize 11 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Max Bypass Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 146.76120000000014 0 "$s" row 1 147.37080000000014 552.1785085439999 "$s" row 2 147.46224000000015 566.33693183999992 "$s" row 3 147.58416000000014 583.32703979519988 "$s" row 4 147.88896000000014 628.63399434239989 "$s" row 5 148.07184000000015 656.95084093439982 "$s" row 6 148.31568000000016 696.59442616319984 "$s" row 7 148.55952000000016 736.23801139199986 "$s" row 8 148.74240000000015 767.38654264319985 "$s" row 9 148.92528000000016 798.53507389439983 "$s" row 10 149.04720000000015 821.18855116799978 "$o" {SeriesSlot} {Bypass Drift Index} set s "$o.Bypass Drift Index" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Index Table} set s "$o.Bypass Index Table" "$s" order 500 "$s" resize 12 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Bypass Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 1 147.79752000000016 218.03971875839994 "$s" row 1 1 148.31568000000016 260.51498864639996 "$s" row 2 1 148.74240000000015 302.99025853439991 "$s" row 3 1 149.04720000000015 332.72294745599987 "$s" row 4 2 147.79752000000016 427.58438353919985 "$s" row 5 2 148.31568000000016 518.19829263359986 "$s" row 6 2 148.74240000000015 597.4854630911999 "$s" row 7 2 149.04720000000015 662.61421025279981 "$s" row 8 3 147.79752000000016 637.12904831999981 "$s" row 9 3 148.31568000000016 777.29743895039985 "$s" row 10 3 148.74240000000015 900.4757216255997 "$s" row 11 3 149.04720000000015 992.22230458367972 "$o" {SeriesSlot} {Bypass Capacity Fraction} set s "$o.Bypass Capacity Fraction" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bypass Capacity} set s "$o.Bypass Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax 0 1805.1989702399994 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Bypass Capacity Table} set s "$o.Bypass Capacity Table" "$s" order 500 "$s" resize 11 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Storage} {Bypass Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 15586725.038100503 552.1785085439999 "$s" row 2 18002718.389330097 566.33693183999992 "$s" row 3 21313750.627639167 583.32703979519988 "$s" row 4 29835988.777967498 628.63399434239989 "$s" row 5 35047194.689986773 656.95084093439982 "$s" row 6 42217699.851399571 696.59442616319984 "$s" row 7 49524805.480772175 736.23801139199986 "$s" row 8 55068337.904394321 767.38654264319985 "$s" row 9 60719927.414612412 798.53507389439983 "$s" row 10 64487653.754757218 821.18855116799978 "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {WAN to PRD} set o "$ws.WAN to PRD" $ws SimObj $obj {Reach} 289 786 {} 904 1152 606 343 "$o" geospatialCoords 0 0 606 343 "$o" objAttributes { \ } "$o" objOrd wsList 5039 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 169 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 5686.0227956735989 5674.6960570367983 5609.5673098751986 5728.4980655615991 6042.8150627327987 6204.2210883071984 6232.5379348991983 6258.0230968319984 6280.6765741055988 6277.8448894463982 6241.0329888767983 6221.2111962623976 6266.5181508095984 6241.0329888767983 6238.2013042175986 6102.280440575998 5983.3496848895984 5770.9733354495984 5677.5277416959989 5533.1118240767983 5527.4484547583979 5402.8543297535989 5533.1118240767983 5518.9534007807988 5567.0920399871984 5972.0229462527986 5663.3693183999985 5688.8544803327986 5977.6863155711981 5728.4980655615991 5552.933616691198 5473.6464462335989 5725.6663809023985 5419.844437708799 5810.6169206783979 5298.0819973631988 5567.0920399871984 5317.9037899775985 5323.5671592959989 5286.7552587263981 5901.2308297727986 6056.973486028799 5943.7060996607988 5991.8447388671984 6054.1418013695984 6286.3399434239982 6682.7757957119984 6892.3204604927987 6858.3402445823976 6578.0034633215982 6153.2507644415991 6405.2706991103978 6572.3400940031979 6728.0827502591983 6515.7064008191983 6541.1915627519984 5969.1912615935989 6235.369619558398 5858.7555598847985 5748.3198581759989 5739.8248041983979 @ 2 5751.1515428351986 5745.4881735167983 6204.2210883071984 6263.6864661503978 6167.4091877375986 6204.2210883071984 6258.0230968319984 5830.4387132927986 5748.3198581759989 5739.8248041983979 5810.6169206783979 5980.5180002303978 6088.1220172799985 6000.3397928447985 5972.0229462527986 6127.7656025087981 6141.9240258047985 6181.567611033599 6056.973486028799 6597.825255935998 6170.2408723967983 5909.7258837503978 5892.7357757951986 6107.9438098943983 6241.0329888767983 6139.0923411455988 6110.7754945535989 6376.953852518398 6207.0527729663982 6201.3894036479987 6215.5478269439982 6269.3498354687981 6229.7062502399986 6042.8150627327987 5986.1332309095924 NaN @ 72 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.75 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {Priest Rapids Constraints} set o "$ws.Priest Rapids Constraints" $ws SimObj $obj {DataObj} 239 676 {} 1573 2582 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5040 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Minimum Generation Manual} set s "$o.Minimum Generation Manual" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 23 "$s" units 3 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 22 "$s" units 3 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Fall Fish Spill Default} set s "$o.Fall Fish Spill Default" "$s" order 15 "$s" units 18 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {ScalarSlot} {Summer Fish Spill Default} set s "$o.Summer Fish Spill Default" "$s" order 55 "$s" units 18 {%f} 2 "$s" value 849.50539775999982 {cms} "$o" {ScalarSlot} {Recreation Weekend Min Elevation} set s "$o.Recreation Weekend Min Elevation" "$s" order 38 "$s" units 3 {%f} 2 "$s" value 147.98040000000015 {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 115.82400000000013 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 131.67360000000014 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {CHJ Forecast Outflow} set s "$o.CHJ Forecast Outflow" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily Low Flow} set s "$o.Daily Low Flow" "$s" order 12 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 8495.0539775999987 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily High Flow} set s "$o.Daily High Flow" "$s" order 11 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 8495.0539775999987 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Flow Band Ranges} set s "$o.Flow Band Ranges" "$s" order 20 "$s" resize 5 2 "$s" setRowLabels {36-80 kcfs} {80-110 kcfs} {110-140 kcfs} {140-170 kcfs} {170+ kcfs} "$s" setColumnLabels {Upper Limit} {Flow Band} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 18 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 2265.3477273599997 566.33693183999992 "$s" row 1 3114.8531251199993 849.50539775999982 "$s" row 2 3964.3585228799993 1132.6738636799998 "$s" row 3 4813.8639206399985 1699.0107955199996 "$s" row 4 14158.423295999997 4247.5269887999993 "$o" {ScalarSlot} {Fall Fish Spill Manual} set s "$o.Fall Fish Spill Manual" "$s" order 16 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Summer Fish Spill Manual} set s "$o.Summer Fish Spill Manual" "$s" order 56 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {TableSlot} {Fall Fish Spill Season Default} set s "$o.Fall Fish Spill Season Default" "$s" order 17 "$s" userDescript {Sets the default active season for Fall Fish Spill from August 21 to November 15 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Fall Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 146278800.5 "$s" row 1 153792000.5 "$o" {TableSlot} {Fall Fish Spill Season Operations} set s "$o.Fall Fish Spill Season Operations" "$s" order 18 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Summer Fish Spill Season Default} set s "$o.Summer Fish Spill Season Default" "$s" order 57 "$s" userDescript {Sets the default active season for Summer Fish Spill from April 15 to August 20 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Summer Fish Spill Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135219600.5 "$s" row 1 146275200.5 "$o" {TableSlot} {Summer Fish Spill Season Operations} set s "$o.Summer Fish Spill Season Operations" "$s" order 58 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135565200.5 "$s" row 1 146275200.5 "$o" {TableSlot} {Recreation Weekend} set s "$o.Recreation Weekend" "$s" order 37 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {ScalarSlot} {CJAD Draft1 Max} set s "$o.CJAD Draft1 Max" "$s" order 1 "$s" units 10 {%f} 2 "$s" value 25643169.936783396 {m3} "$o" {ScalarSlot} {CJAD Draft2 Max} set s "$o.CJAD Draft2 Max" "$s" order 2 "$s" units 10 {%f} 2 "$s" value 5842422.4027705425 {m3} "$o" {SeriesSlot} {CJAD Required Draft1 Volume} set s "$o.CJAD Required Draft1 Volume" "$s" order 9 "$s" computedByExpr 2 {IF ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"], $ "Priest Rapids Constraints.CJAD Draft1 Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" userDescript {This slot calculates the volume that Priest Rapids is required to draft to make up its portion of the outlfow shortage from CJAD in accordance with the Hanford Reach Agreement D.6(a)(i).} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD Required Draft2 Volume} set s "$o.CJAD Required Draft2 Volume" "$s" order 10 "$s" computedByExpr 2 {IF ( $ "Wells Constraints.CJAD Required Draft Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraft"( % "Wells", @"t" ) - $ "Wells Constraints.CJAD Required Draft Volume" [@"t"], $ "Priest Rapids Constraints.CJAD Draft2 Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" userDescript {This slot calculates the volume that Priest Rapids is required to draft to make up its portion of the outlfow shortage from CJAD, up to an addition 0.7 ft after other reservoirs have been drafted in the 3,2,1,1 sequence, in accordance with the Hanford Reach Agreement D.6(a)(i) based on the actual CJAD quantity and the amount that other reservoirs are already drafting.} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD Nonfed Remaining Draft Volume} set s "$o.CJAD Nonfed Remaining Draft Volume" "$s" order 8 "$s" computedByExpr 2 {IF ( $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ 0.50000000 * ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraft"( % "Chief Joseph", @"t" ) )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {CJAD II Draft1 Max} set s "$o.CJAD II Draft1 Max" "$s" order 3 "$s" units 10 {%f} 2 "$s" value 8640489.3016965259 {m3} "$o" {ScalarSlot} {CJAD II Draft2 Max} set s "$o.CJAD II Draft2 Max" "$s" order 4 "$s" units 10 {%f} 2 "$s" value 22844899.156561952 {m3} "$o" {SeriesSlot} {CJAD II Required Draft1 Volume} set s "$o.CJAD II Required Draft1 Volume" "$s" order 6 "$s" computedByExpr 2 {IF ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] * ( $ "Priest Rapids Constraints.CJAD II Draft1 Max" [] / ( $ "Priest Rapids Constraints.CJAD II Draft1 Max" [] + $ "Wanapum Constraints.CJAD II Draft1 Max" [] ) ), $ "Priest Rapids Constraints.CJAD II Draft1 Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD II Required Draft2 Volume} set s "$o.CJAD II Required Draft2 Volume" "$s" order 7 "$s" computedByExpr 2 {IF ( $ "Wells Constraints.CJAD II Required Draft Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ "Min"( ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [@"t"] - $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] - $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [@"t"] - $ "Wells Constraints.CJAD II Required Draft Volume" [@"t"] ) * ( $ "Priest Rapids Constraints.CJAD II Draft2 Max" [] / ( $ "Priest Rapids Constraints.CJAD II Draft2 Max" [] + $ "Wanapum Constraints.CJAD II Draft2 Max" [] ) ), $ "Priest Rapids Constraints.CJAD II Draft2 Max" [] )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD II Nonfed Remaining Draft Volume} set s "$o.CJAD II Nonfed Remaining Draft Volume" "$s" order 5 "$s" computedByExpr 2 {IF ( $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ 0.50000000 * ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - ( $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [@"t"] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [@"t"] + $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [@"t"] + $ "Wells Constraints.CJAD II Required Draft Volume" [@"t"] + $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [@"t"] + $ "Wanapum Constraints.CJAD II Required Draft2 Volume" [@"t"] ) )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Minimum Generation Default} set s "$o.Minimum Generation Default" "$s" order 26 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Max Flow Increase At Midnight} set s "$o.Max Flow Increase At Midnight" "$s" order 25 "$s" units 18 {%f} 2 "$s" value 1132.6738636799998 {cms} "$o" {ScalarSlot} {Max Flow Decrease At Midnight} set s "$o.Max Flow Decrease At Midnight" "$s" order 24 "$s" units 18 {%f} 2 "$s" value 566.33693184000003 {cms} "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 54 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Priest Rapids", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Desired Operating Elevation} set s "$o.Desired Operating Elevation" "$s" order 13 "$s" computedByExpr 3 {IF ( "ResNameFromDataObj"( ThisObject ) & "Turbine Release" [@"t"] >= "TableInterpolation"( "ResNameFromDataObj"( ThisObject ) & "Auto Max Turbine Q", 0.00000000, 1.00000000, "ResNameFromDataObj"( ThisObject ) & "Operating Head" [@"t"], @"t" ) )\ THEN\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"] - 1.00000000 "ft"\ ELSE\ "ResNameFromDataObj"( ThisObject ) & "Pool Elevation" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 61 "$s" units 15 {%f} 2 "$s" value 56.633693183999988 {cms} "$o" {ScalarSlot} {Turbine Release Allowable Curvature Scalar} set s "$o.Turbine Release Allowable Curvature Scalar" "$s" order 60 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 4077.6259092479991 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 68 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 67 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 59 "$s" computedByExpr 2 {IF ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) < 24.00000000 "hr" AND @"t" != @"24:00:00" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( @"Finish Timestep" - "PreviousDate"( @"t", @"24:00:00" ) ) / 1.00000000 "hr" )\ ELSE\ IF ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) < 24.00000000 "hr" )\ THEN\ ThisObject & "Turbine Release Curvature Parameter" [] * ( ( "NextDate"( @"t", @"24:00:00" ) - ( @"Start Timestep" - 1.00000000 "hr" ) ) / 1.00000000 "hr" )\ ELSE\ ThisObject & "Turbine Release Curvature Parameter" [] * 24.00000000\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Outflow Daily Target Default} set s "$o.Outflow Daily Target Default" "$s" order 28 "$s" computedByExpr 2 {IF ( "NextDate"( @"t", @"24:00:00" ) <= @"Finish Timestep" )\ THEN\ IF ( "PreviousDate"( @"t", @"1:00:00" ) >= @"Start Timestep" )\ THEN\ ( "InDayTotal"( $ "Chief Joseph Constraints.Discharge Estimate", @"t" ) + FOR ( DATETIME timestep IN "PreviousDate"( @"t", @"1:00:00" ) TO "NextDate"( @"t", @"24:00:00" ) ) STAT_SUM\ "SumSideflowsDownstreamCHJ"( timestep )\ ENDFOR ) / 24.00000000\ ELSE\ ( FOR ( DATETIME timestep IN "PreviousDate"( @"t", @"1:00:00" ) TO @"Start Timestep - 1" ) STAT_SUM\ $ "Chief Joseph.Outflow" [timestep]\ ENDFOR + FOR ( DATETIME timestep IN @"Start Timestep" TO "NextDate"( @"t", @"24:00:00" ) ) STAT_SUM\ $ "Chief Joseph Constraints.Discharge Estimate" [timestep]\ ENDFOR + FOR ( DATETIME timestep IN "PreviousDate"( @"t", @"1:00:00" ) TO "NextDate"( @"t", @"24:00:00" ) ) STAT_SUM\ "SumSideflowsDownstreamCHJ"( timestep )\ ENDFOR ) / 24.00000000\ ENDIF\ ELSE\ ( FOR ( DATETIME timestep IN "PreviousDate"( @"t", @"1:00:00" ) TO @"Finish Timestep" ) STAT_SUM\ $ "Chief Joseph Constraints.Discharge Estimate" [timestep]\ ENDFOR + FOR ( DATETIME timestep IN "PreviousDate"( @"t", @"1:00:00" ) TO @"Finish Timestep" ) STAT_SUM\ "SumSideflowsDownstreamCHJ"( timestep )\ ENDFOR ) / ( ( @"Finish Timestep" - @"t - 1" ) / 1.00000000 "hr" )\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Outflow Daily Target Margin Default} set s "$o.Outflow Daily Target Margin Default" "$s" order 29 "$s" units 15 {%f} 2 "$s" value 283.1684659199999 {cms} "$o" {SeriesSlot} {Special Operations Outflow Daily Target} set s "$o.Special Operations Outflow Daily Target" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Outflow Daily Target Margin} set s "$o.Special Operations Outflow Daily Target Margin" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Percent Full} set s "$o.Percent Full" "$s" order 61 "$s" computedByExpr 3 {1.00000000 - "RelativeDraft"( "ResNameFromDataObj"( ThisObject ), @"t" )} "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pond Limits Adjustment} set s "$o.Pond Limits Adjustment" "$s" order 70 "$s" units 2 {%f} 2 "$s" value 0 {m} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 68 "$s" units 2 {%f} 2 "$s" value 0.15240000000000017 {m} "$o" {ScalarSlot} {Pool Elevation Max Margin Default} set s "$o.Pool Elevation Max Margin Default" "$s" order 64 "$s" units 2 {%f} 2 "$s" value 0.12801600000000013 {m} "$o" {SeriesSlot} {Pool Elevation Max with Margin} set s "$o.Pool Elevation Max with Margin" "$s" order 39 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Max Pool Elevation", @"t" ) )\ THEN\ "Min"( ThisObject & "License Max Pool Elevation" [], ThisObject & "Special Operations Max Pool Elevation" [] )\ ELSE\ ThisObject & "License Max Pool Elevation" []\ ENDIF - ThisObject & "Pool Elevation Max Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Pool Elevation Min Margin Default} set s "$o.Pool Elevation Min Margin Default" "$s" order 65 "$s" units 2 {%f} 2 "$s" value 0.076200000000000087 {m} "$o" {SeriesSlot} {Pool Elevation Min with Margin} set s "$o.Pool Elevation Min with Margin" "$s" order 38 "$s" computedByExpr 3 {IF ( "IsInput"( ThisObject & "Special Operations Min Pool Elevation", @"t" ) )\ THEN\ "Max"( ThisObject & "License Min Pool Elevation" [], ThisObject & "Special Operations Min Pool Elevation" [] )\ ELSE\ ThisObject & "License Min Pool Elevation" []\ ENDIF + ThisObject & "Pool Elevation Min Margin" []} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Max Controlling} set s "$o.Elevation Max Controlling" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Elevation Min Controlling} set s "$o.Elevation Min Controlling" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Min Margin} set s "$o.Pool Elevation Min Margin" "$s" order 67 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Max Margin} set s "$o.Pool Elevation Max Margin" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Operating Head} set s "$o.Shifted Operating Head" "$s" order 45 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Shifted Turbine Release} set s "$o.Shifted Turbine Release" "$s" order 46 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency} set s "$o.Efficiency" "$s" order 47 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Estimate} set s "$o.Turbine Release Estimate" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head Estimate} set s "$o.Operating Head Estimate" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Efficiency Estimate} set s "$o.Efficiency Estimate" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Max Efficiency Turbine Release} set s "$o.Max Efficiency Turbine Release" "$s" order 51 "$s" units 15 {%f} 2 "$s" value NaN {cms} "$o" {ScalarSlot} {Max Efficiency Operating Head} set s "$o.Max Efficiency Operating Head" "$s" order 52 "$s" units 2 {%f} 2 "$s" value NaN {m} "$o" {ScalarSlot} {cos Efficiency Theta} set s "$o.cos Efficiency Theta" "$s" order 53 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {sin Efficiency Theta} set s "$o.sin Efficiency Theta" "$s" order 54 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Pool Elevation Estimate} set s "$o.Pool Elevation Estimate" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Estimate Avg} set s "$o.Pool Elevation Estimate Avg" "$s" order 56 "$s" units 2 {%f} 2 "$s" value 147.90692330333354 {m} "$o" {SeriesSlot} {Inflow Estimate} set s "$o.Inflow Estimate" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Estimate} set s "$o.Outflow Estimate" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Estimate Avg} set s "$o.Outflow Estimate Avg" "$s" order 59 "$s" units 15 {%f} 2 "$s" value 6403.5477993730774 {cms} "$o" {ScalarSlot} {Tailwater Estimate Avg} set s "$o.Tailwater Estimate Avg" "$s" order 60 "$s" units 2 {%f} 2 "$s" value 127.14235092884829 {m} "$o" {SeriesSlot} {Tailwater Estimate} set s "$o.Tailwater Estimate" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Operating Head Estimate Avg} set s "$o.Operating Head Estimate Avg" "$s" order 62 "$s" units 2 {%f} 2 "$s" value 20.764572374485255 {m} "$o" {ScalarSlot} {Max Efficiency} set s "$o.Max Efficiency" "$s" order 63 "$s" units 75 {%f} 2 "$s" value NaN {decimal} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 950 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 148.74240000000015 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 67 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 131.67360000000014 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 70 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 146.76120000000014 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 72 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 73 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 115.82400000000013 @ 121 "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 74 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 75 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 76 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK Estimate} set s "$o.HK Estimate" "$s" order 78 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HK} set s "$o.HK" "$s" order 79 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax 0 0.28251733377190869 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Operating Head Count} set s "$o.HK Operating Head Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 5 {NONE} "$o" {TableSlot} {HK Table Operating Head} set s "$o.HK Table Operating Head" "$s" order 81 "$s" resize 5 1 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 2 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 17.678400000000018 "$s" row 1 19.812000000000022 "$s" row 2 21.336000000000023 "$s" row 3 24.384000000000025 "$s" row 4 29.870400000000032 "$o" {TableSlot} {HK Table Turbine Release} set s "$o.HK Table Turbine Release" "$s" order 82 "$s" resize 4 1 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 15 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 28.316846591999994 "$s" row 1 1415.8423295999996 "$s" row 2 2831.6846591999993 "$s" row 3 5097.0323865599985 "$o" {ScalarSlot} {HK Turbine Release Count} set s "$o.HK Turbine Release Count" "$s" order 83 "$s" units 0 {%f} 2 "$s" value 4 {NONE} "$o" {TableSlot} {HK Table} set s "$o.HK Table" "$s" order 84 "$s" resize 15 15 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setMaximums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" setUnits 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} {2} "$s" row 0 0.15500496695716928 0.15500496695716925 0.15500496695716925 0.14427479775237115 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 1 0.16977548042980786 0.16977548042980783 0.16977548042980783 0.15831651200710548 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 2 0.18032584719597827 0.18032584719597824 0.18032584719597824 0.16834630790334429 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 3 0.20083174588857963 0.20083174588857966 0.20083174588857966 0.18398241892651318 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 4 0.20842716299022573 0.20842716299022573 0.20842716299022573 0.18561781214000203 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$s" row 14 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN "$o" {ScalarSlot} {HK Count} set s "$o.HK Count" "$s" order 85 "$s" units 0 {%f} 2 "$s" value 20 {NONE} "$o" {TableSlot} {HK Table 3D} set s "$o.HK Table 3D" "$s" order 86 "$s" resize 225 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {HK} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 2 15 30 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 17.678400000000018 28.316846591999994 0.15500496695716928 "$s" row 1 17.678400000000018 1415.8423295999996 0.15500496695716925 "$s" row 2 17.678400000000018 2831.6846591999993 0.15500496695716925 "$s" row 3 17.678400000000018 5097.0323865599985 0.14427479775237115 "$s" row 4 19.812000000000022 28.316846591999994 0.16977548042980786 "$s" row 5 19.812000000000022 1415.8423295999996 0.16977548042980783 "$s" row 6 19.812000000000022 2831.6846591999993 0.16977548042980783 "$s" row 7 19.812000000000022 5097.0323865599985 0.15831651200710548 "$s" row 8 21.336000000000023 28.316846591999994 0.18032584719597827 "$s" row 9 21.336000000000023 1415.8423295999996 0.18032584719597824 "$s" row 10 21.336000000000023 2831.6846591999993 0.18032584719597824 "$s" row 11 21.336000000000023 5097.0323865599985 0.16834630790334429 "$s" row 12 24.384000000000025 28.316846591999994 0.20083174588857963 "$s" row 13 24.384000000000025 1415.8423295999996 0.20083174588857966 "$s" row 14 24.384000000000025 2831.6846591999993 0.20083174588857966 "$s" row 15 24.384000000000025 5097.0323865599985 0.18398241892651318 "$s" row 16 29.870400000000032 28.316846591999994 0.20842716299022573 "$s" row 17 29.870400000000032 1415.8423295999996 0.20842716299022573 "$s" row 18 29.870400000000032 2831.6846591999993 0.20842716299022573 "$s" row 19 29.870400000000032 5097.0323865599985 0.18561781214000203 "$s" row 20 NaN NaN NaN "$s" row 21 NaN NaN NaN "$s" row 22 NaN NaN NaN "$s" row 23 NaN NaN NaN "$s" row 24 NaN NaN NaN "$s" row 25 NaN NaN NaN "$s" row 26 NaN NaN NaN "$s" row 27 NaN NaN NaN "$s" row 28 NaN NaN NaN "$s" row 29 NaN NaN NaN "$s" row 30 NaN NaN NaN "$s" row 31 NaN NaN NaN "$s" row 32 NaN NaN NaN "$s" row 33 NaN NaN NaN "$s" row 34 NaN NaN NaN "$s" row 35 NaN NaN NaN "$s" row 36 NaN NaN NaN "$s" row 37 NaN NaN NaN "$s" row 38 NaN NaN NaN "$s" row 39 NaN NaN NaN "$s" row 40 NaN NaN NaN "$s" row 41 NaN NaN NaN "$s" row 42 NaN NaN NaN "$s" row 43 NaN NaN NaN "$s" row 44 NaN NaN NaN "$s" row 45 NaN NaN NaN "$s" row 46 NaN NaN NaN "$s" row 47 NaN NaN NaN "$s" row 48 NaN NaN NaN "$s" row 49 NaN NaN NaN "$s" row 50 NaN NaN NaN "$s" row 51 NaN NaN NaN "$s" row 52 NaN NaN NaN "$s" row 53 NaN NaN NaN "$s" row 54 NaN NaN NaN "$s" row 55 NaN NaN NaN "$s" row 56 NaN NaN NaN "$s" row 57 NaN NaN NaN "$s" row 58 NaN NaN NaN "$s" row 59 NaN NaN NaN "$s" row 60 NaN NaN NaN "$s" row 61 NaN NaN NaN "$s" row 62 NaN NaN NaN "$s" row 63 NaN NaN NaN "$s" row 64 NaN NaN NaN "$s" row 65 NaN NaN NaN "$s" row 66 NaN NaN NaN "$s" row 67 NaN NaN NaN "$s" row 68 NaN NaN NaN "$s" row 69 NaN NaN NaN "$s" row 70 NaN NaN NaN "$s" row 71 NaN NaN NaN "$s" row 72 NaN NaN NaN "$s" row 73 NaN NaN NaN "$s" row 74 NaN NaN NaN "$s" row 75 NaN NaN NaN "$s" row 76 NaN NaN NaN "$s" row 77 NaN NaN NaN "$s" row 78 NaN NaN NaN "$s" row 79 NaN NaN NaN "$s" row 80 NaN NaN NaN "$s" row 81 NaN NaN NaN "$s" row 82 NaN NaN NaN "$s" row 83 NaN NaN NaN "$s" row 84 NaN NaN NaN "$s" row 85 NaN NaN NaN "$s" row 86 NaN NaN NaN "$s" row 87 NaN NaN NaN "$s" row 88 NaN NaN NaN "$s" row 89 NaN NaN NaN "$s" row 90 NaN NaN NaN "$s" row 91 NaN NaN NaN "$s" row 92 NaN NaN NaN "$s" row 93 NaN NaN NaN "$s" row 94 NaN NaN NaN "$s" row 95 NaN NaN NaN "$s" row 96 NaN NaN NaN "$s" row 97 NaN NaN NaN "$s" row 98 NaN NaN NaN "$s" row 99 NaN NaN NaN "$s" row 100 NaN NaN NaN "$s" row 101 NaN NaN NaN "$s" row 102 NaN NaN NaN "$s" row 103 NaN NaN NaN "$s" row 104 NaN NaN NaN "$s" row 105 NaN NaN NaN "$s" row 106 NaN NaN NaN "$s" row 107 NaN NaN NaN "$s" row 108 NaN NaN NaN "$s" row 109 NaN NaN NaN "$s" row 110 NaN NaN NaN "$s" row 111 NaN NaN NaN "$s" row 112 NaN NaN NaN "$s" row 113 NaN NaN NaN "$s" row 114 NaN NaN NaN "$s" row 115 NaN NaN NaN "$s" row 116 NaN NaN NaN "$s" row 117 NaN NaN NaN "$s" row 118 NaN NaN NaN "$s" row 119 NaN NaN NaN "$s" row 120 NaN NaN NaN "$s" row 121 NaN NaN NaN "$s" row 122 NaN NaN NaN "$s" row 123 NaN NaN NaN "$s" row 124 NaN NaN NaN "$s" row 125 NaN NaN NaN "$s" row 126 NaN NaN NaN "$s" row 127 NaN NaN NaN "$s" row 128 NaN NaN NaN "$s" row 129 NaN NaN NaN "$s" row 130 NaN NaN NaN "$s" row 131 NaN NaN NaN "$s" row 132 NaN NaN NaN "$s" row 133 NaN NaN NaN "$s" row 134 NaN NaN NaN "$s" row 135 NaN NaN NaN "$s" row 136 NaN NaN NaN "$s" row 137 NaN NaN NaN "$s" row 138 NaN NaN NaN "$s" row 139 NaN NaN NaN "$s" row 140 NaN NaN NaN "$s" row 141 NaN NaN NaN "$s" row 142 NaN NaN NaN "$s" row 143 NaN NaN NaN "$s" row 144 NaN NaN NaN "$s" row 145 NaN NaN NaN "$s" row 146 NaN NaN NaN "$s" row 147 NaN NaN NaN "$s" row 148 NaN NaN NaN "$s" row 149 NaN NaN NaN "$s" row 150 NaN NaN NaN "$s" row 151 NaN NaN NaN "$s" row 152 NaN NaN NaN "$s" row 153 NaN NaN NaN "$s" row 154 NaN NaN NaN "$s" row 155 NaN NaN NaN "$s" row 156 NaN NaN NaN "$s" row 157 NaN NaN NaN "$s" row 158 NaN NaN NaN "$s" row 159 NaN NaN NaN "$s" row 160 NaN NaN NaN "$s" row 161 NaN NaN NaN "$s" row 162 NaN NaN NaN "$s" row 163 NaN NaN NaN "$s" row 164 NaN NaN NaN "$s" row 165 NaN NaN NaN "$s" row 166 NaN NaN NaN "$s" row 167 NaN NaN NaN "$s" row 168 NaN NaN NaN "$s" row 169 NaN NaN NaN "$s" row 170 NaN NaN NaN "$s" row 171 NaN NaN NaN "$s" row 172 NaN NaN NaN "$s" row 173 NaN NaN NaN "$s" row 174 NaN NaN NaN "$s" row 175 NaN NaN NaN "$s" row 176 NaN NaN NaN "$s" row 177 NaN NaN NaN "$s" row 178 NaN NaN NaN "$s" row 179 NaN NaN NaN "$s" row 180 NaN NaN NaN "$s" row 181 NaN NaN NaN "$s" row 182 NaN NaN NaN "$s" row 183 NaN NaN NaN "$s" row 184 NaN NaN NaN "$s" row 185 NaN NaN NaN "$s" row 186 NaN NaN NaN "$s" row 187 NaN NaN NaN "$s" row 188 NaN NaN NaN "$s" row 189 NaN NaN NaN "$s" row 190 NaN NaN NaN "$s" row 191 NaN NaN NaN "$s" row 192 NaN NaN NaN "$s" row 193 NaN NaN NaN "$s" row 194 NaN NaN NaN "$s" row 195 NaN NaN NaN "$s" row 196 NaN NaN NaN "$s" row 197 NaN NaN NaN "$s" row 198 NaN NaN NaN "$s" row 199 NaN NaN NaN "$s" row 200 NaN NaN NaN "$s" row 201 NaN NaN NaN "$s" row 202 NaN NaN NaN "$s" row 203 NaN NaN NaN "$s" row 204 NaN NaN NaN "$s" row 205 NaN NaN NaN "$s" row 206 NaN NaN NaN "$s" row 207 NaN NaN NaN "$s" row 208 NaN NaN NaN "$s" row 209 NaN NaN NaN "$s" row 210 NaN NaN NaN "$s" row 211 NaN NaN NaN "$s" row 212 NaN NaN NaN "$s" row 213 NaN NaN NaN "$s" row 214 NaN NaN NaN "$s" row 215 NaN NaN NaN "$s" row 216 NaN NaN NaN "$s" row 217 NaN NaN NaN "$s" row 218 NaN NaN NaN "$s" row 219 NaN NaN NaN "$s" row 220 NaN NaN NaN "$s" row 221 NaN NaN NaN "$s" row 222 NaN NaN NaN "$s" row 223 NaN NaN NaN "$s" row 224 NaN NaN 0 "$o" {SeriesSlot} {HKWeight_0} set s "$o.HKWeight_0" "$s" order 87 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_1} set s "$o.HKWeight_1" "$s" order 88 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_10} set s "$o.HKWeight_10" "$s" order 89 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_11} set s "$o.HKWeight_11" "$s" order 90 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_12} set s "$o.HKWeight_12" "$s" order 91 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_13} set s "$o.HKWeight_13" "$s" order 92 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_14} set s "$o.HKWeight_14" "$s" order 93 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_15} set s "$o.HKWeight_15" "$s" order 94 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_16} set s "$o.HKWeight_16" "$s" order 95 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_17} set s "$o.HKWeight_17" "$s" order 96 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_18} set s "$o.HKWeight_18" "$s" order 97 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_19} set s "$o.HKWeight_19" "$s" order 98 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_2} set s "$o.HKWeight_2" "$s" order 99 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_20} set s "$o.HKWeight_20" "$s" order 100 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_21} set s "$o.HKWeight_21" "$s" order 101 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_22} set s "$o.HKWeight_22" "$s" order 102 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_23} set s "$o.HKWeight_23" "$s" order 103 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_24} set s "$o.HKWeight_24" "$s" order 104 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_25} set s "$o.HKWeight_25" "$s" order 105 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_3} set s "$o.HKWeight_3" "$s" order 106 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_4} set s "$o.HKWeight_4" "$s" order 107 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_5} set s "$o.HKWeight_5" "$s" order 108 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_6} set s "$o.HKWeight_6" "$s" order 109 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_7} set s "$o.HKWeight_7" "$s" order 110 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_8} set s "$o.HKWeight_8" "$s" order 111 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_9} set s "$o.HKWeight_9" "$s" order 112 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_26} set s "$o.HKWeight_26" "$s" order 113 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_27} set s "$o.HKWeight_27" "$s" order 114 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_28} set s "$o.HKWeight_28" "$s" order 115 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_29} set s "$o.HKWeight_29" "$s" order 116 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_30} set s "$o.HKWeight_30" "$s" order 117 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_31} set s "$o.HKWeight_31" "$s" order 118 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_32} set s "$o.HKWeight_32" "$s" order 119 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_33} set s "$o.HKWeight_33" "$s" order 120 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_34} set s "$o.HKWeight_34" "$s" order 121 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_35} set s "$o.HKWeight_35" "$s" order 122 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_36} set s "$o.HKWeight_36" "$s" order 123 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_37} set s "$o.HKWeight_37" "$s" order 124 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_40} set s "$o.HKWeight_40" "$s" order 125 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_41} set s "$o.HKWeight_41" "$s" order 126 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_42} set s "$o.HKWeight_42" "$s" order 127 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_43} set s "$o.HKWeight_43" "$s" order 128 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_44} set s "$o.HKWeight_44" "$s" order 129 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_45} set s "$o.HKWeight_45" "$s" order 130 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_46} set s "$o.HKWeight_46" "$s" order 131 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_47} set s "$o.HKWeight_47" "$s" order 132 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_48} set s "$o.HKWeight_48" "$s" order 133 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_49} set s "$o.HKWeight_49" "$s" order 134 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_50} set s "$o.HKWeight_50" "$s" order 135 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_51} set s "$o.HKWeight_51" "$s" order 136 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_52} set s "$o.HKWeight_52" "$s" order 137 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_54} set s "$o.HKWeight_54" "$s" order 138 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_55} set s "$o.HKWeight_55" "$s" order 139 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_56} set s "$o.HKWeight_56" "$s" order 140 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_57} set s "$o.HKWeight_57" "$s" order 141 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_58} set s "$o.HKWeight_58" "$s" order 142 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_59} set s "$o.HKWeight_59" "$s" order 143 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_60} set s "$o.HKWeight_60" "$s" order 144 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_61} set s "$o.HKWeight_61" "$s" order 145 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_62} set s "$o.HKWeight_62" "$s" order 146 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_63} set s "$o.HKWeight_63" "$s" order 147 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_64} set s "$o.HKWeight_64" "$s" order 148 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_65} set s "$o.HKWeight_65" "$s" order 149 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_66} set s "$o.HKWeight_66" "$s" order 150 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_67} set s "$o.HKWeight_67" "$s" order 151 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_68} set s "$o.HKWeight_68" "$s" order 152 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_69} set s "$o.HKWeight_69" "$s" order 153 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_70} set s "$o.HKWeight_70" "$s" order 154 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_71} set s "$o.HKWeight_71" "$s" order 155 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_72} set s "$o.HKWeight_72" "$s" order 156 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_73} set s "$o.HKWeight_73" "$s" order 157 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_74} set s "$o.HKWeight_74" "$s" order 158 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_75} set s "$o.HKWeight_75" "$s" order 159 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_100} set s "$o.HKWeight_100" "$s" order 160 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_76} set s "$o.HKWeight_76" "$s" order 161 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_77} set s "$o.HKWeight_77" "$s" order 162 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_78} set s "$o.HKWeight_78" "$s" order 163 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_79} set s "$o.HKWeight_79" "$s" order 164 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_80} set s "$o.HKWeight_80" "$s" order 165 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_81} set s "$o.HKWeight_81" "$s" order 166 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_82} set s "$o.HKWeight_82" "$s" order 167 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_83} set s "$o.HKWeight_83" "$s" order 168 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_84} set s "$o.HKWeight_84" "$s" order 169 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_85} set s "$o.HKWeight_85" "$s" order 170 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_86} set s "$o.HKWeight_86" "$s" order 171 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_87} set s "$o.HKWeight_87" "$s" order 172 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_88} set s "$o.HKWeight_88" "$s" order 173 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_89} set s "$o.HKWeight_89" "$s" order 174 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_90} set s "$o.HKWeight_90" "$s" order 175 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_91} set s "$o.HKWeight_91" "$s" order 176 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_92} set s "$o.HKWeight_92" "$s" order 177 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_93} set s "$o.HKWeight_93" "$s" order 178 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_94} set s "$o.HKWeight_94" "$s" order 179 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_95} set s "$o.HKWeight_95" "$s" order 180 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_96} set s "$o.HKWeight_96" "$s" order 181 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_97} set s "$o.HKWeight_97" "$s" order 182 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_98} set s "$o.HKWeight_98" "$s" order 183 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_99} set s "$o.HKWeight_99" "$s" order 184 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_101} set s "$o.HKWeight_101" "$s" order 185 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_102} set s "$o.HKWeight_102" "$s" order 186 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_103} set s "$o.HKWeight_103" "$s" order 187 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_104} set s "$o.HKWeight_104" "$s" order 188 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_105} set s "$o.HKWeight_105" "$s" order 189 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_106} set s "$o.HKWeight_106" "$s" order 190 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_107} set s "$o.HKWeight_107" "$s" order 191 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_108} set s "$o.HKWeight_108" "$s" order 192 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_109} set s "$o.HKWeight_109" "$s" order 193 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_110} set s "$o.HKWeight_110" "$s" order 194 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_111} set s "$o.HKWeight_111" "$s" order 195 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_112} set s "$o.HKWeight_112" "$s" order 196 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_113} set s "$o.HKWeight_113" "$s" order 197 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_114} set s "$o.HKWeight_114" "$s" order 198 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_115} set s "$o.HKWeight_115" "$s" order 199 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_116} set s "$o.HKWeight_116" "$s" order 200 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_117} set s "$o.HKWeight_117" "$s" order 201 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_118} set s "$o.HKWeight_118" "$s" order 202 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_119} set s "$o.HKWeight_119" "$s" order 203 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_120} set s "$o.HKWeight_120" "$s" order 204 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_121} set s "$o.HKWeight_121" "$s" order 205 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_122} set s "$o.HKWeight_122" "$s" order 206 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_123} set s "$o.HKWeight_123" "$s" order 207 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_124} set s "$o.HKWeight_124" "$s" order 208 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_125} set s "$o.HKWeight_125" "$s" order 209 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_126} set s "$o.HKWeight_126" "$s" order 210 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_127} set s "$o.HKWeight_127" "$s" order 211 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_128} set s "$o.HKWeight_128" "$s" order 212 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_129} set s "$o.HKWeight_129" "$s" order 213 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_130} set s "$o.HKWeight_130" "$s" order 214 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_131} set s "$o.HKWeight_131" "$s" order 215 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_132} set s "$o.HKWeight_132" "$s" order 216 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_133} set s "$o.HKWeight_133" "$s" order 217 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_134} set s "$o.HKWeight_134" "$s" order 218 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_135} set s "$o.HKWeight_135" "$s" order 219 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_136} set s "$o.HKWeight_136" "$s" order 220 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_137} set s "$o.HKWeight_137" "$s" order 221 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_138} set s "$o.HKWeight_138" "$s" order 222 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_139} set s "$o.HKWeight_139" "$s" order 223 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_140} set s "$o.HKWeight_140" "$s" order 224 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_141} set s "$o.HKWeight_141" "$s" order 225 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_142} set s "$o.HKWeight_142" "$s" order 226 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_143} set s "$o.HKWeight_143" "$s" order 227 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_144} set s "$o.HKWeight_144" "$s" order 228 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_145} set s "$o.HKWeight_145" "$s" order 229 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_146} set s "$o.HKWeight_146" "$s" order 230 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_147} set s "$o.HKWeight_147" "$s" order 231 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_148} set s "$o.HKWeight_148" "$s" order 232 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_149} set s "$o.HKWeight_149" "$s" order 233 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_150} set s "$o.HKWeight_150" "$s" order 234 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_151} set s "$o.HKWeight_151" "$s" order 235 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_152} set s "$o.HKWeight_152" "$s" order 236 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_153} set s "$o.HKWeight_153" "$s" order 237 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_154} set s "$o.HKWeight_154" "$s" order 238 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_155} set s "$o.HKWeight_155" "$s" order 239 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_156} set s "$o.HKWeight_156" "$s" order 240 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_157} set s "$o.HKWeight_157" "$s" order 241 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_158} set s "$o.HKWeight_158" "$s" order 242 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_159} set s "$o.HKWeight_159" "$s" order 243 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_160} set s "$o.HKWeight_160" "$s" order 244 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_161} set s "$o.HKWeight_161" "$s" order 245 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_162} set s "$o.HKWeight_162" "$s" order 246 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_163} set s "$o.HKWeight_163" "$s" order 247 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_164} set s "$o.HKWeight_164" "$s" order 248 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_165} set s "$o.HKWeight_165" "$s" order 249 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_166} set s "$o.HKWeight_166" "$s" order 250 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_167} set s "$o.HKWeight_167" "$s" order 251 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_168} set s "$o.HKWeight_168" "$s" order 252 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_169} set s "$o.HKWeight_169" "$s" order 253 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_170} set s "$o.HKWeight_170" "$s" order 254 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_171} set s "$o.HKWeight_171" "$s" order 255 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_172} set s "$o.HKWeight_172" "$s" order 256 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_173} set s "$o.HKWeight_173" "$s" order 257 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_174} set s "$o.HKWeight_174" "$s" order 258 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_175} set s "$o.HKWeight_175" "$s" order 259 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_176} set s "$o.HKWeight_176" "$s" order 260 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_177} set s "$o.HKWeight_177" "$s" order 261 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_178} set s "$o.HKWeight_178" "$s" order 262 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_179} set s "$o.HKWeight_179" "$s" order 263 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_180} set s "$o.HKWeight_180" "$s" order 264 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_181} set s "$o.HKWeight_181" "$s" order 265 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_182} set s "$o.HKWeight_182" "$s" order 266 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_183} set s "$o.HKWeight_183" "$s" order 267 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_184} set s "$o.HKWeight_184" "$s" order 268 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_185} set s "$o.HKWeight_185" "$s" order 269 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_186} set s "$o.HKWeight_186" "$s" order 270 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_187} set s "$o.HKWeight_187" "$s" order 271 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_188} set s "$o.HKWeight_188" "$s" order 272 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_189} set s "$o.HKWeight_189" "$s" order 273 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_190} set s "$o.HKWeight_190" "$s" order 274 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_191} set s "$o.HKWeight_191" "$s" order 275 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_192} set s "$o.HKWeight_192" "$s" order 276 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_193} set s "$o.HKWeight_193" "$s" order 277 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_194} set s "$o.HKWeight_194" "$s" order 278 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_195} set s "$o.HKWeight_195" "$s" order 279 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_196} set s "$o.HKWeight_196" "$s" order 280 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_197} set s "$o.HKWeight_197" "$s" order 281 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_198} set s "$o.HKWeight_198" "$s" order 282 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_199} set s "$o.HKWeight_199" "$s" order 283 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_200} set s "$o.HKWeight_200" "$s" order 284 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_201} set s "$o.HKWeight_201" "$s" order 285 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_202} set s "$o.HKWeight_202" "$s" order 286 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_203} set s "$o.HKWeight_203" "$s" order 287 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_204} set s "$o.HKWeight_204" "$s" order 288 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_205} set s "$o.HKWeight_205" "$s" order 289 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_206} set s "$o.HKWeight_206" "$s" order 290 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_207} set s "$o.HKWeight_207" "$s" order 291 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_208} set s "$o.HKWeight_208" "$s" order 292 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_209} set s "$o.HKWeight_209" "$s" order 293 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_210} set s "$o.HKWeight_210" "$s" order 294 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_211} set s "$o.HKWeight_211" "$s" order 295 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_212} set s "$o.HKWeight_212" "$s" order 296 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_213} set s "$o.HKWeight_213" "$s" order 297 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_214} set s "$o.HKWeight_214" "$s" order 298 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_215} set s "$o.HKWeight_215" "$s" order 299 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_216} set s "$o.HKWeight_216" "$s" order 300 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_217} set s "$o.HKWeight_217" "$s" order 301 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_218} set s "$o.HKWeight_218" "$s" order 302 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_219} set s "$o.HKWeight_219" "$s" order 303 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_220} set s "$o.HKWeight_220" "$s" order 304 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_221} set s "$o.HKWeight_221" "$s" order 305 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_222} set s "$o.HKWeight_222" "$s" order 306 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_223} set s "$o.HKWeight_223" "$s" order 307 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_224} set s "$o.HKWeight_224" "$s" order 308 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_225} set s "$o.HKWeight_225" "$s" order 309 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_38} set s "$o.HKWeight_38" "$s" order 310 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_39} set s "$o.HKWeight_39" "$s" order 311 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {HKWeight_53} set s "$o.HKWeight_53" "$s" order 312 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {HK Estimate Avg} set s "$o.HK Estimate Avg" "$s" order 313 "$s" units 30 {%f} 2 "$s" value 0.16953972556299371 {MW/cms} "$o" {SeriesSlot} {Spill Required} set s "$o.Spill Required" "$s" order 314 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Estimate Avg} set s "$o.Turbine Release Estimate Avg" "$s" order 315 "$s" units 15 {%f} 2 "$s" value 4304.6441847956703 {cms} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {ScalarSlot} {Max Available Storage} set s "$o.Max Available Storage" "$s" order 312 "$s" units 8 {%f} 2 "$s" value 55068337.904394321 {m3} "$o" {SeriesSlot} {Active Storage} set s "$o.Active Storage" "$s" order 313 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 55068337.904394314 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elev Ramp Limit Down} set s "$o.Pool Elev Ramp Limit Down" "$s" order 319 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {ScalarSlot} {Pool Elev Ramp Limit Up} set s "$o.Pool Elev Ramp Limit Up" "$s" order 320 "$s" units 2 {%f} 2 "$s" value 0.0076200000000000087 {m} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 321 "$s" userDescript {2016-09-29 DMI data loads these value from EAS Account
4914 - PRD_DESIRED_ELEVATION_FT} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 147.61464000000015 147.67560000000014 147.70608000000016 147.76704000000015 147.82800000000015 147.85848000000016 147.91944000000015 147.94992000000016 148.01088000000016 148.10232000000016 148.16328000000016 @ 2 148.01088000000016 147.85848000000016 147.73656000000014 147.58416000000014 147.43176000000014 147.30984000000015 147.34032000000016 147.40128000000016 147.43176000000014 147.49272000000016 147.52320000000014 147.58416000000014 147.61464000000015 147.67560000000014 147.73656000000014 147.76704000000015 147.82800000000015 147.85848000000016 147.91944000000015 147.94992000000016 148.01088000000016 148.10232000000016 148.19376000000014 148.16328000000016 148.01088000000016 147.85848000000016 147.73656000000014 147.58416000000014 147.43176000000014 147.30984000000015 147.34032000000016 147.40128000000016 147.43176000000014 147.49272000000016 147.52320000000014 147.58416000000014 147.64512000000016 147.67560000000014 147.73656000000014 147.76704000000015 147.82800000000015 147.85848000000016 147.91944000000015 147.94992000000016 148.01088000000016 148.10232000000016 @ 2 148.16328000000016 148.01088000000016 147.85848000000016 147.73656000000014 147.58416000000014 147.43176000000014 147.30984000000015 147.34032000000016 147.40128000000016 147.43176000000014 147.49272000000016 147.52320000000014 147.58416000000014 147.64512000000016 147.67560000000014 147.73656000000014 147.76704000000015 147.82800000000015 147.85848000000016 147.91944000000015 147.94992000000016 148.01088000000016 148.10232000000016 @ 2 148.16328000000016 148.01088000000016 147.85848000000016 147.73656000000014 147.58416000000014 147.43176000000014 147.30984000000015 147.34032000000016 147.40128000000016 147.43176000000014 147.49272000000016 147.52320000000014 147.58416000000014 147.64512000000016 147.67560000000014 147.73656000000014 147.76704000000015 147.82800000000015 147.85848000000016 147.91944000000015 147.94992000000016 148.01088000000016 148.10232000000016 @ 2 148.34616000000014 @ 4 148.37664000000015 148.40712000000016 148.43760000000015 148.46808000000016 @ 2 147.79752000000016 @ 3 147.76704000000015 @ 4 147.73656000000014 @ 2 147.79752000000016 147.85848000000016 147.88896000000014 147.94992000000016 148.07184000000015 148.13280000000015 148.34616000000014 @ 4 148.37664000000015 148.40712000000016 148.43760000000015 148.46808000000016 @ 13 148.43760000000015 148.40712000000016 148.37664000000015 148.34616000000014 148.16328000000016 148.01088000000016 147.85848000000016 147.73656000000014 147.58416000000014 147.43176000000014 147.30984000000015 147.34032000000016 147.40128000000016 147.43176000000014 147.49272000000016 147.52320000000014 147.58416000000014 147.61464000000015 "$o" {SeriesSlot} {Draft Feet} set s "$o.Draft Feet" "$s" order 322 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax 0 2.2555200000000024 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Percent} set s "$o.Draft Percent" "$s" order 323 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume} set s "$o.Draft Volume" "$s" order 324 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 64487653.754757211 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 325 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 326 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 327 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 328 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 329 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 330 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 331 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 332 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Ramp Limit Down} set s "$o.Outflow Ramp Limit Down" "$s" order 333 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {ScalarSlot} {Outflow Ramp Limit Up} set s "$o.Outflow Ramp Limit Up" "$s" order 334 "$s" units 15 {%f} 2 "$s" value 70.792116479999976 {cms} "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 335 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {RLF Daylight Outflow} set s "$o.RLF Daylight Outflow" "$s" order 39 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Generation w Par Con} set s "$o.Special Operations Max Generation w Par Con" "$s" order 342 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 540 630 @ 2 700 @ 24 710 @ 80 700 @ 7 540 @ 55 "$o" {SeriesSlot} {Special Operations Max Generation wo Par Con} set s "$o.Special Operations Max Generation wo Par Con" "$s" order 343 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 750 @ 169 "$o" {SeriesSlot} {Special Operations Max Pool Elevation w Par Con} set s "$o.Special Operations Max Pool Elevation w Par Con" "$s" order 344 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 148.74240000000015 @ 169 "$o" {SeriesSlot} {Special Operations Max Pool Elevation wo Par Con} set s "$o.Special Operations Max Pool Elevation wo Par Con" "$s" order 345 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 148.74240000000015 @ 169 "$o" {SeriesSlot} {Special Operations Min Generation w Par Con} set s "$o.Special Operations Min Generation w Par Con" "$s" order 346 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 377 @ 169 "$o" {SeriesSlot} {Special Operations Min Generation wo Par Con} set s "$o.Special Operations Min Generation wo Par Con" "$s" order 347 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 90 @ 169 "$o" {SeriesSlot} {Flow Band Estimated Average Flow} set s "$o.Flow Band Estimated Average Flow" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow Bands Default} set s "$o.Flow Bands Default" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily High Flow Import} set s "$o.Daily High Flow Import" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Daily Low Flow Import} set s "$o.Daily Low Flow Import" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Flow Bands Import} set s "$o.Flow Bands Import" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Flow Bands} set s "$o.Flow Bands" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow Bands Max Allowable} set s "$o.Flow Bands Max Allowable" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow Bands Min Allowable} set s "$o.Flow Bands Min Allowable" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spill Reduced Bound} set s "$o.Spill Reduced Bound" "$s" order 348 "$s" units 15 {%f} 2 "$s" value 5663.3693183999985 {cms} "$o" {SeriesSlot} {Content Available} set s "$o.Content Available" "$s" order 350 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily High Flow Import Target} set s "$o.Daily High Flow Import Target" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily Low Flow Import Target} set s "$o.Daily Low Flow Import Target" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Daily Low Flow Tolerance Default} set s "$o.Daily Low Flow Tolerance Default" "$s" order 35 "$s" units 15 {%f} 2 "$s" value 28.316846591999994 {cms} "$o" {SeriesSlot} {Daily Low Flow Tolerance} set s "$o.Daily Low Flow Tolerance" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Daily Low Flow Tolerance Percent} set s "$o.Daily Low Flow Tolerance Percent" "$s" order 35 "$s" units 75 {%f} 2 "$s" value 0.10000000000000001 {decimal} "$o" {TableSlot} {Daily Low Flow Tolerance Table} set s "$o.Daily Low Flow Tolerance Table" "$s" order 35 "$s" resize 5 2 "$s" setRowLabels {} {} {} {} {} "$s" setColumnLabels {Flow Band} {Tolerance} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 15 15 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 566.33693183999981 56.633693183999988 "$s" row 1 849.50539775999982 84.950539775999971 "$s" row 2 1132.6738636799996 113.26738636799998 "$s" row 3 1699.0107955199996 141.58423295999995 "$s" row 4 4247.5269887999984 141.58423295999995 "$o" {SeriesSlot} {Spill Exchange Spill} set s "$o.Spill Exchange Spill" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Daily Flow Band Range} set s "$o.Daily Flow Band Range" "$s" order 36 "$s" computedByExpr 3 {% "Priest Rapids Constraints" & "Daily High Flow" [] - % "Priest Rapids Constraints" & "Daily Low Flow" []} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Daily Flow Band Range Allowable} set s "$o.Daily Flow Band Range Allowable" "$s" order 36 "$s" computedByExpr 3 {% "Priest Rapids Constraints" & "Flow Bands Max Allowable" [] - % "Priest Rapids Constraints" & "Flow Bands Min Allowable" []} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Min Pool Elevation w Par Con} set s "$o.Special Operations Min Pool Elevation w Par Con" "$s" order 360 "$s" userDescript {Includes participant constraints, for plotting} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 146.76120000000014 @ 121 "$o" {SeriesSlot} {Special Operations Min Pool Elevation wo Par Con} set s "$o.Special Operations Min Pool Elevation wo Par Con" "$s" order 361 "$s" userDescript {Without participant constraints, so the model isn't too constrained} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 146.76120000000014 @ 169 "$o" {SeriesSlot} {Special Operations Max Outflow w Par Con} set s "$o.Special Operations Max Outflow w Par Con" "$s" order 362 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow wo Par Con} set s "$o.Special Operations Max Outflow wo Par Con" "$s" order 363 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 169 "$o" {SeriesSlot} {Special Operations Min Outflow w Par Con} set s "$o.Special Operations Min Outflow w Par Con" "$s" order 364 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Min Outflow wo Par Con} set s "$o.Special Operations Min Outflow wo Par Con" "$s" order 365 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Coefficient Approximation Default} set s "$o.Power Coefficient Approximation Default" "$s" order 34 "$s" computedByExpr 2 {"PowerCoeffApproxDefault"( % "Grand Coulee" )} "$s" units 31 {%f} 2 "$s" value 0.77449998403386888 {MW/cms} "$o" {SeriesSlot} {Fish Spill Default} set s "$o.Fish Spill Default" "$s" order 366 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" SlotGroup {Special Operations Hard Constraints} set sg "$o.Special Operations Hard Constraints" "$sg" SlotGroup Order 77 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max 24 Hour Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Daily Spill} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 13 {Special Operations Outflow Daily Target} "$sg" SlotGroup LocalSlot 14 {Special Operations Outflow Daily Target Margin} "$sg" SlotGroup LocalSlot 15 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 16 {Special Operations Max Generation w Par Con} "$sg" SlotGroup LocalSlot 17 {Special Operations Max Generation wo Par Con} "$sg" SlotGroup LocalSlot 18 {Special Operations Max Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 19 {Special Operations Max Pool Elevation wo Par Con} "$sg" SlotGroup LocalSlot 20 {Special Operations Min Generation w Par Con} "$sg" SlotGroup LocalSlot 21 {Special Operations Min Generation wo Par Con} "$sg" SlotGroup LocalSlot 22 {Special Operations Max Outflow w Par Con} "$sg" SlotGroup LocalSlot 23 {Special Operations Max Outflow wo Par Con} "$sg" SlotGroup LocalSlot 24 {Special Operations Min Outflow w Par Con} "$sg" SlotGroup LocalSlot 25 {Special Operations Min Outflow wo Par Con} "$sg" SlotGroup LocalSlot 26 {Special Operations Min Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 27 {Special Operations Min Pool Elevation wo Par Con} "$o" SlotGroup {Pool Elev Margin} set sg "$o.Pool Elev Margin" "$sg" SlotGroup Order 66 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation Margin} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max Margin Default} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Max with Margin} "$sg" SlotGroup LocalSlot 3 {Pool Elevation Min Margin Default} "$sg" SlotGroup LocalSlot 4 {Pool Elevation Min with Margin} "$sg" SlotGroup LocalSlot 5 {Elevation Max Controlling} "$sg" SlotGroup LocalSlot 6 {Elevation Min Controlling} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Min Margin} "$sg" SlotGroup LocalSlot 8 {Pool Elevation Max Margin} "$o" SlotGroup {Efficiency Objective} set sg "$o.Efficiency Objective" "$sg" SlotGroup Order 54 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Shifted Operating Head} "$sg" SlotGroup LocalSlot 1 {Shifted Turbine Release} "$sg" SlotGroup LocalSlot 2 {Efficiency} "$sg" SlotGroup LocalSlot 3 {Efficiency Estimate} "$sg" SlotGroup LocalSlot 4 {Max Efficiency Turbine Release} "$sg" SlotGroup LocalSlot 5 {Max Efficiency Operating Head} "$sg" SlotGroup LocalSlot 6 {cos Efficiency Theta} "$sg" SlotGroup LocalSlot 7 {sin Efficiency Theta} "$sg" SlotGroup LocalSlot 8 {Max Efficiency} "$o" SlotGroup {Special Operations Soft Constraints} set sg "$o.Special Operations Soft Constraints" "$sg" SlotGroup Order 36 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 9 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 10 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 11 {Special Operations Soft Max Spill} "$o" SlotGroup {Spill Slots} set sg "$o.Spill Slots" "$sg" SlotGroup Order 304 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fall Fish Spill Default} "$sg" SlotGroup LocalSlot 2 {Fall Fish Spill Season Default} "$sg" SlotGroup LocalSlot 3 {Summer Fish Spill Default} "$sg" SlotGroup LocalSlot 4 {Summer Fish Spill Season Default} "$sg" SlotGroup LocalSlot 5 {Spill As Energy} "$sg" SlotGroup LocalSlot 6 {Spill Reduced Bound} "$sg" SlotGroup LocalSlot 7 {Summer Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 8 {Fall Fish Spill Season Operations} "$sg" SlotGroup LocalSlot 9 {Fish Spill Default} "$sg" SlotGroup LocalSlot 10 {Spill Required} "$o" SlotGroup {HK Objective} set sg "$o.HK Objective" "$sg" SlotGroup Order 261 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HK Operating Head Count} "$sg" SlotGroup LocalSlot 1 {HK Table Operating Head} "$sg" SlotGroup LocalSlot 2 {HK Table Turbine Release} "$sg" SlotGroup LocalSlot 3 {HK Turbine Release Count} "$sg" SlotGroup LocalSlot 4 {HK Table} "$sg" SlotGroup LocalSlot 5 {HK Count} "$sg" SlotGroup LocalSlot 6 {HK Table 3D} "$sg" SlotGroup LocalSlot 7 {HK} "$o" SlotGroup {HK Weights} set sg "$o.HK Weights" "$sg" SlotGroup Order 253 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {HKWeight_0} "$sg" SlotGroup LocalSlot 1 {HKWeight_1} "$sg" SlotGroup LocalSlot 2 {HKWeight_10} "$sg" SlotGroup LocalSlot 3 {HKWeight_11} "$sg" SlotGroup LocalSlot 4 {HKWeight_12} "$sg" SlotGroup LocalSlot 5 {HKWeight_13} "$sg" SlotGroup LocalSlot 6 {HKWeight_14} "$sg" SlotGroup LocalSlot 7 {HKWeight_15} "$sg" SlotGroup LocalSlot 8 {HKWeight_16} "$sg" SlotGroup LocalSlot 9 {HKWeight_17} "$sg" SlotGroup LocalSlot 10 {HKWeight_18} "$sg" SlotGroup LocalSlot 11 {HKWeight_19} "$sg" SlotGroup LocalSlot 12 {HKWeight_2} "$sg" SlotGroup LocalSlot 13 {HKWeight_20} "$sg" SlotGroup LocalSlot 14 {HKWeight_21} "$sg" SlotGroup LocalSlot 15 {HKWeight_22} "$sg" SlotGroup LocalSlot 16 {HKWeight_23} "$sg" SlotGroup LocalSlot 17 {HKWeight_24} "$sg" SlotGroup LocalSlot 18 {HKWeight_25} "$sg" SlotGroup LocalSlot 19 {HKWeight_3} "$sg" SlotGroup LocalSlot 20 {HKWeight_4} "$sg" SlotGroup LocalSlot 21 {HKWeight_5} "$sg" SlotGroup LocalSlot 22 {HKWeight_6} "$sg" SlotGroup LocalSlot 23 {HKWeight_7} "$sg" SlotGroup LocalSlot 24 {HKWeight_8} "$sg" SlotGroup LocalSlot 25 {HKWeight_9} "$sg" SlotGroup LocalSlot 26 {HKWeight_26} "$sg" SlotGroup LocalSlot 27 {HKWeight_27} "$sg" SlotGroup LocalSlot 28 {HKWeight_28} "$sg" SlotGroup LocalSlot 29 {HKWeight_29} "$sg" SlotGroup LocalSlot 30 {HKWeight_30} "$sg" SlotGroup LocalSlot 31 {HKWeight_31} "$sg" SlotGroup LocalSlot 32 {HKWeight_32} "$sg" SlotGroup LocalSlot 33 {HKWeight_33} "$sg" SlotGroup LocalSlot 34 {HKWeight_34} "$sg" SlotGroup LocalSlot 35 {HKWeight_35} "$sg" SlotGroup LocalSlot 36 {HKWeight_36} "$sg" SlotGroup LocalSlot 37 {HKWeight_37} "$sg" SlotGroup LocalSlot 38 {HKWeight_40} "$sg" SlotGroup LocalSlot 39 {HKWeight_41} "$sg" SlotGroup LocalSlot 40 {HKWeight_42} "$sg" SlotGroup LocalSlot 41 {HKWeight_43} "$sg" SlotGroup LocalSlot 42 {HKWeight_44} "$sg" SlotGroup LocalSlot 43 {HKWeight_45} "$sg" SlotGroup LocalSlot 44 {HKWeight_46} "$sg" SlotGroup LocalSlot 45 {HKWeight_47} "$sg" SlotGroup LocalSlot 46 {HKWeight_48} "$sg" SlotGroup LocalSlot 47 {HKWeight_49} "$sg" SlotGroup LocalSlot 48 {HKWeight_50} "$sg" SlotGroup LocalSlot 49 {HKWeight_51} "$sg" SlotGroup LocalSlot 50 {HKWeight_52} "$sg" SlotGroup LocalSlot 51 {HKWeight_54} "$sg" SlotGroup LocalSlot 52 {HKWeight_55} "$sg" SlotGroup LocalSlot 53 {HKWeight_56} "$sg" SlotGroup LocalSlot 54 {HKWeight_57} "$sg" SlotGroup LocalSlot 55 {HKWeight_58} "$sg" SlotGroup LocalSlot 56 {HKWeight_59} "$sg" SlotGroup LocalSlot 57 {HKWeight_60} "$sg" SlotGroup LocalSlot 58 {HKWeight_61} "$sg" SlotGroup LocalSlot 59 {HKWeight_62} "$sg" SlotGroup LocalSlot 60 {HKWeight_63} "$sg" SlotGroup LocalSlot 61 {HKWeight_64} "$sg" SlotGroup LocalSlot 62 {HKWeight_65} "$sg" SlotGroup LocalSlot 63 {HKWeight_66} "$sg" SlotGroup LocalSlot 64 {HKWeight_67} "$sg" SlotGroup LocalSlot 65 {HKWeight_68} "$sg" SlotGroup LocalSlot 66 {HKWeight_69} "$sg" SlotGroup LocalSlot 67 {HKWeight_70} "$sg" SlotGroup LocalSlot 68 {HKWeight_71} "$sg" SlotGroup LocalSlot 69 {HKWeight_72} "$sg" SlotGroup LocalSlot 70 {HKWeight_73} "$sg" SlotGroup LocalSlot 71 {HKWeight_74} "$sg" SlotGroup LocalSlot 72 {HKWeight_75} "$sg" SlotGroup LocalSlot 73 {HKWeight_100} "$sg" SlotGroup LocalSlot 74 {HKWeight_76} "$sg" SlotGroup LocalSlot 75 {HKWeight_77} "$sg" SlotGroup LocalSlot 76 {HKWeight_78} "$sg" SlotGroup LocalSlot 77 {HKWeight_79} "$sg" SlotGroup LocalSlot 78 {HKWeight_80} "$sg" SlotGroup LocalSlot 79 {HKWeight_81} "$sg" SlotGroup LocalSlot 80 {HKWeight_82} "$sg" SlotGroup LocalSlot 81 {HKWeight_83} "$sg" SlotGroup LocalSlot 82 {HKWeight_84} "$sg" SlotGroup LocalSlot 83 {HKWeight_85} "$sg" SlotGroup LocalSlot 84 {HKWeight_86} "$sg" SlotGroup LocalSlot 85 {HKWeight_87} "$sg" SlotGroup LocalSlot 86 {HKWeight_88} "$sg" SlotGroup LocalSlot 87 {HKWeight_89} "$sg" SlotGroup LocalSlot 88 {HKWeight_90} "$sg" SlotGroup LocalSlot 89 {HKWeight_91} "$sg" SlotGroup LocalSlot 90 {HKWeight_92} "$sg" SlotGroup LocalSlot 91 {HKWeight_93} "$sg" SlotGroup LocalSlot 92 {HKWeight_94} "$sg" SlotGroup LocalSlot 93 {HKWeight_95} "$sg" SlotGroup LocalSlot 94 {HKWeight_96} "$sg" SlotGroup LocalSlot 95 {HKWeight_97} "$sg" SlotGroup LocalSlot 96 {HKWeight_98} "$sg" SlotGroup LocalSlot 97 {HKWeight_99} "$sg" SlotGroup LocalSlot 98 {HKWeight_101} "$sg" SlotGroup LocalSlot 99 {HKWeight_102} "$sg" SlotGroup LocalSlot 100 {HKWeight_103} "$sg" SlotGroup LocalSlot 101 {HKWeight_104} "$sg" SlotGroup LocalSlot 102 {HKWeight_105} "$sg" SlotGroup LocalSlot 103 {HKWeight_106} "$sg" SlotGroup LocalSlot 104 {HKWeight_107} "$sg" SlotGroup LocalSlot 105 {HKWeight_108} "$sg" SlotGroup LocalSlot 106 {HKWeight_109} "$sg" SlotGroup LocalSlot 107 {HKWeight_110} "$sg" SlotGroup LocalSlot 108 {HKWeight_111} "$sg" SlotGroup LocalSlot 109 {HKWeight_112} "$sg" SlotGroup LocalSlot 110 {HKWeight_113} "$sg" SlotGroup LocalSlot 111 {HKWeight_114} "$sg" SlotGroup LocalSlot 112 {HKWeight_115} "$sg" SlotGroup LocalSlot 113 {HKWeight_116} "$sg" SlotGroup LocalSlot 114 {HKWeight_117} "$sg" SlotGroup LocalSlot 115 {HKWeight_118} "$sg" SlotGroup LocalSlot 116 {HKWeight_119} "$sg" SlotGroup LocalSlot 117 {HKWeight_120} "$sg" SlotGroup LocalSlot 118 {HKWeight_121} "$sg" SlotGroup LocalSlot 119 {HKWeight_122} "$sg" SlotGroup LocalSlot 120 {HKWeight_123} "$sg" SlotGroup LocalSlot 121 {HKWeight_124} "$sg" SlotGroup LocalSlot 122 {HKWeight_125} "$sg" SlotGroup LocalSlot 123 {HKWeight_126} "$sg" SlotGroup LocalSlot 124 {HKWeight_127} "$sg" SlotGroup LocalSlot 125 {HKWeight_128} "$sg" SlotGroup LocalSlot 126 {HKWeight_129} "$sg" SlotGroup LocalSlot 127 {HKWeight_130} "$sg" SlotGroup LocalSlot 128 {HKWeight_131} "$sg" SlotGroup LocalSlot 129 {HKWeight_132} "$sg" SlotGroup LocalSlot 130 {HKWeight_133} "$sg" SlotGroup LocalSlot 131 {HKWeight_134} "$sg" SlotGroup LocalSlot 132 {HKWeight_135} "$sg" SlotGroup LocalSlot 133 {HKWeight_136} "$sg" SlotGroup LocalSlot 134 {HKWeight_137} "$sg" SlotGroup LocalSlot 135 {HKWeight_138} "$sg" SlotGroup LocalSlot 136 {HKWeight_139} "$sg" SlotGroup LocalSlot 137 {HKWeight_140} "$sg" SlotGroup LocalSlot 138 {HKWeight_141} "$sg" SlotGroup LocalSlot 139 {HKWeight_142} "$sg" SlotGroup LocalSlot 140 {HKWeight_143} "$sg" SlotGroup LocalSlot 141 {HKWeight_144} "$sg" SlotGroup LocalSlot 142 {HKWeight_145} "$sg" SlotGroup LocalSlot 143 {HKWeight_146} "$sg" SlotGroup LocalSlot 144 {HKWeight_147} "$sg" SlotGroup LocalSlot 145 {HKWeight_148} "$sg" SlotGroup LocalSlot 146 {HKWeight_149} "$sg" SlotGroup LocalSlot 147 {HKWeight_150} "$sg" SlotGroup LocalSlot 148 {HKWeight_151} "$sg" SlotGroup LocalSlot 149 {HKWeight_152} "$sg" SlotGroup LocalSlot 150 {HKWeight_153} "$sg" SlotGroup LocalSlot 151 {HKWeight_154} "$sg" SlotGroup LocalSlot 152 {HKWeight_155} "$sg" SlotGroup LocalSlot 153 {HKWeight_156} "$sg" SlotGroup LocalSlot 154 {HKWeight_157} "$sg" SlotGroup LocalSlot 155 {HKWeight_158} "$sg" SlotGroup LocalSlot 156 {HKWeight_159} "$sg" SlotGroup LocalSlot 157 {HKWeight_160} "$sg" SlotGroup LocalSlot 158 {HKWeight_161} "$sg" SlotGroup LocalSlot 159 {HKWeight_162} "$sg" SlotGroup LocalSlot 160 {HKWeight_163} "$sg" SlotGroup LocalSlot 161 {HKWeight_164} "$sg" SlotGroup LocalSlot 162 {HKWeight_165} "$sg" SlotGroup LocalSlot 163 {HKWeight_166} "$sg" SlotGroup LocalSlot 164 {HKWeight_167} "$sg" SlotGroup LocalSlot 165 {HKWeight_168} "$sg" SlotGroup LocalSlot 166 {HKWeight_169} "$sg" SlotGroup LocalSlot 167 {HKWeight_170} "$sg" SlotGroup LocalSlot 168 {HKWeight_171} "$sg" SlotGroup LocalSlot 169 {HKWeight_172} "$sg" SlotGroup LocalSlot 170 {HKWeight_173} "$sg" SlotGroup LocalSlot 171 {HKWeight_174} "$sg" SlotGroup LocalSlot 172 {HKWeight_175} "$sg" SlotGroup LocalSlot 173 {HKWeight_176} "$sg" SlotGroup LocalSlot 174 {HKWeight_177} "$sg" SlotGroup LocalSlot 175 {HKWeight_178} "$sg" SlotGroup LocalSlot 176 {HKWeight_179} "$sg" SlotGroup LocalSlot 177 {HKWeight_180} "$sg" SlotGroup LocalSlot 178 {HKWeight_181} "$sg" SlotGroup LocalSlot 179 {HKWeight_182} "$sg" SlotGroup LocalSlot 180 {HKWeight_183} "$sg" SlotGroup LocalSlot 181 {HKWeight_184} "$sg" SlotGroup LocalSlot 182 {HKWeight_185} "$sg" SlotGroup LocalSlot 183 {HKWeight_186} "$sg" SlotGroup LocalSlot 184 {HKWeight_187} "$sg" SlotGroup LocalSlot 185 {HKWeight_188} "$sg" SlotGroup LocalSlot 186 {HKWeight_189} "$sg" SlotGroup LocalSlot 187 {HKWeight_190} "$sg" SlotGroup LocalSlot 188 {HKWeight_191} "$sg" SlotGroup LocalSlot 189 {HKWeight_192} "$sg" SlotGroup LocalSlot 190 {HKWeight_193} "$sg" SlotGroup LocalSlot 191 {HKWeight_194} "$sg" SlotGroup LocalSlot 192 {HKWeight_195} "$sg" SlotGroup LocalSlot 193 {HKWeight_196} "$sg" SlotGroup LocalSlot 194 {HKWeight_197} "$sg" SlotGroup LocalSlot 195 {HKWeight_198} "$sg" SlotGroup LocalSlot 196 {HKWeight_199} "$sg" SlotGroup LocalSlot 197 {HKWeight_200} "$sg" SlotGroup LocalSlot 198 {HKWeight_201} "$sg" SlotGroup LocalSlot 199 {HKWeight_202} "$sg" SlotGroup LocalSlot 200 {HKWeight_203} "$sg" SlotGroup LocalSlot 201 {HKWeight_204} "$sg" SlotGroup LocalSlot 202 {HKWeight_205} "$sg" SlotGroup LocalSlot 203 {HKWeight_206} "$sg" SlotGroup LocalSlot 204 {HKWeight_207} "$sg" SlotGroup LocalSlot 205 {HKWeight_208} "$sg" SlotGroup LocalSlot 206 {HKWeight_209} "$sg" SlotGroup LocalSlot 207 {HKWeight_210} "$sg" SlotGroup LocalSlot 208 {HKWeight_211} "$sg" SlotGroup LocalSlot 209 {HKWeight_212} "$sg" SlotGroup LocalSlot 210 {HKWeight_213} "$sg" SlotGroup LocalSlot 211 {HKWeight_214} "$sg" SlotGroup LocalSlot 212 {HKWeight_215} "$sg" SlotGroup LocalSlot 213 {HKWeight_216} "$sg" SlotGroup LocalSlot 214 {HKWeight_217} "$sg" SlotGroup LocalSlot 215 {HKWeight_218} "$sg" SlotGroup LocalSlot 216 {HKWeight_219} "$sg" SlotGroup LocalSlot 217 {HKWeight_220} "$sg" SlotGroup LocalSlot 218 {HKWeight_221} "$sg" SlotGroup LocalSlot 219 {HKWeight_222} "$sg" SlotGroup LocalSlot 220 {HKWeight_223} "$sg" SlotGroup LocalSlot 221 {HKWeight_224} "$sg" SlotGroup LocalSlot 222 {HKWeight_225} "$sg" SlotGroup LocalSlot 223 {HKWeight_38} "$sg" SlotGroup LocalSlot 224 {HKWeight_39} "$sg" SlotGroup LocalSlot 225 {HKWeight_53} "$o" SlotGroup {Flow Bands Slots} set sg "$o.Flow Bands Slots" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Daily High Flow} "$sg" SlotGroup LocalSlot 1 {Daily Low Flow} "$sg" SlotGroup LocalSlot 2 {Flow Band Ranges} "$sg" SlotGroup LocalSlot 3 {Flow Band Estimated Average Flow} "$sg" SlotGroup LocalSlot 4 {Flow Bands Default} "$sg" SlotGroup LocalSlot 5 {Daily High Flow Import} "$sg" SlotGroup LocalSlot 6 {Daily Low Flow Import} "$sg" SlotGroup LocalSlot 7 {Flow Bands Import} "$sg" SlotGroup LocalSlot 8 {Flow Bands} "$sg" SlotGroup LocalSlot 9 {Flow Bands Max Allowable} "$sg" SlotGroup LocalSlot 10 {Flow Bands Min Allowable} "$sg" SlotGroup LocalSlot 11 {Max Flow Decrease At Midnight} "$sg" SlotGroup LocalSlot 12 {Max Flow Increase At Midnight} "$sg" SlotGroup LocalSlot 13 {Daily High Flow Import Target} "$sg" SlotGroup LocalSlot 14 {Daily Low Flow Import Target} "$sg" SlotGroup LocalSlot 15 {Daily Low Flow Tolerance Default} "$sg" SlotGroup LocalSlot 16 {Daily Low Flow Tolerance} "$sg" SlotGroup LocalSlot 17 {Daily Low Flow Tolerance Percent} "$sg" SlotGroup LocalSlot 18 {Daily Low Flow Tolerance Table} "$sg" SlotGroup LocalSlot 19 {Daily Flow Band Range} "$sg" SlotGroup LocalSlot 20 {Daily Flow Band Range Allowable} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 39 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Tailwater Elevation Baseline} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 37 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$sg" SlotGroup LocalSlot 3 {Power Coefficient Approximation Default} "$o" SlotGroup {Estimates} set sg "$o.Estimates" "$sg" SlotGroup Order 46 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Tailwater Estimate} "$sg" SlotGroup LocalSlot 1 {Turbine Release Estimate} "$sg" SlotGroup LocalSlot 2 {Operating Head Estimate} "$sg" SlotGroup LocalSlot 3 {Outflow Estimate} "$sg" SlotGroup LocalSlot 4 {Pool Elevation Estimate} "$sg" SlotGroup LocalSlot 5 {Inflow Estimate} "$sg" SlotGroup LocalSlot 6 {HK Estimate} "$sg" SlotGroup LocalSlot 7 {Pool Elevation Estimate Avg} "$sg" SlotGroup LocalSlot 8 {Outflow Estimate Avg} "$sg" SlotGroup LocalSlot 9 {Tailwater Estimate Avg} "$sg" SlotGroup LocalSlot 10 {HK Estimate Avg} "$sg" SlotGroup LocalSlot 11 {Operating Head Estimate Avg} "$sg" SlotGroup LocalSlot 12 {Turbine Release Estimate Avg} "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {CHJ Forecast Outflow} "$o" hids {CJAD Draft1 Max} "$o" hids {CJAD Draft2 Max} "$o" hids {CJAD II Draft1 Max} "$o" hids {CJAD II Draft2 Max} "$o" hids {CJAD II Nonfed Remaining Draft Volume} "$o" hids {CJAD II Required Draft1 Volume} "$o" hids {CJAD II Required Draft2 Volume} "$o" hids {CJAD Nonfed Remaining Draft Volume} "$o" hids {CJAD Required Draft1 Volume} "$o" hids {CJAD Required Draft2 Volume} "$o" hids {Desired Operating Elevation} "$o" hids {Fall Fish Spill Manual} "$o" hids {Outflow Daily Target Default} "$o" hids {Outflow Daily Target Margin Default} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Special Operations Outflow Daily Target} "$o" hids {Special Operations Outflow Daily Target Margin} "$o" hids {Summer Fish Spill Manual} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Allowable Curvature Scalar} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {Grand Coulee} set o "$ws.Grand Coulee" $ws SimObj $obj {LevelPowerReservoir} 689 1453 {} 977 1654 679 845 "$o" geospatialCoords 0 0 679 845 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5041 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {None} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {None} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Stage Flow Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Base Value Plus Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 193 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 5252.7750428159989 @ 11 5167.8245030399985 @ 24 5275.4285200895984 @ 24 5221.6265115647984 @ 24 4935.6263609855987 @ 14 5241.816423184895 @ 2 5090.4628781506544 @ 6 5118.1850709642231 @ 6 5125.8023026974706 @ 6 5132.7965638056949 @ 6 5081.7412894003182 @ 6 5081.6280220139506 @ 6 5078.6547531217902 @ 6 5076.2478211614707 @ 6 5073.5860375818229 @ 6 5069.0553421271024 @ 6 5063.958309740543 @ 6 5060.7018723824631 @ 6 5059.144445819903 @ 6 5057.1622665584628 @ 6 5054.7270177515511 @ 6 5051.9236499389426 @ 4 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 4997.9234234879987 4978.1016308735989 5006.4184774655987 5020.5769007615991 4997.9234234879987 5046.0620626943983 5034.7353240575994 4992.2600541695992 4955.4481535999985 4969.6065768959988 4975.2699462143983 5009.2501621247984 4975.2699462143983 4966.7748922367991 4975.2699462143983 5006.4184774655987 5023.4085854207988 5029.0719547391982 4924.2996223487989 4997.9234234879987 5063.0521706495992 5088.5373325823984 5085.7056479231987 5094.2007019007988 5085.7056479231987 5074.3789092863981 5065.883855308799 5091.3690172415991 5082.873963263999 5071.5472246271984 5065.883855308799 5057.3888013311989 5051.7254320127986 5043.2303780351986 5097.0323865599985 5119.6858638335989 5082.873963263999 5136.675971788799 5150.8343950847984 5176.3195570175985 5167.8245030399985 5150.8343950847984 5136.675971788799 5269.765150771198 5281.0918894079987 5261.2700967935989 5337.7255825919983 5275.4285200895993 4881.8243524607988 5139.5076564479987 5142.3393411071984 5360.3790598655987 5224.458196223999 5068.7155399679987 5377.3691678207988 5128.1809178111989 5136.675971788799 5108.3591251967991 4975.2699462143983 5125.3492331519983 5003.5867928063981 4935.6263609855987 4734.5767501823984 4870.497613823999 4864.8342445055987 5031.9036393983988 5020.5769007615991 5196.1413496319983 5139.5076564479987 5518.9534007807988 5162.1611337215991 5060.2204859903986 5054.5571166719983 5269.765150771198 5148.0027104255987 5201.8047189503986 5136.675971788799 5249.9433581567991 5629.3891024895993 5417.0127530495993 5023.4085854207988 4989.4283695103986 4706.2599035903986 4609.9826251775994 4567.5073552895992 4677.9430569983988 4692.1014802943982 4980.9333155327986 4856.3391905279987 4717.5866422271984 5139.5076564479987 4929.9629916671984 4743.0718041599985 5133.8442871295993 5414.1810683903987 5196.1413496319983 5224.9056024001529 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 6396077351.6958504 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 368.2136400000004 393.17676000000046 "$s" setFSeries {m} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {m} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 375.71699304000043 375.71635296000039 375.71553000000034 375.71482896000043 375.71409744000039 375.71278680000034 375.71202480000039 375.7115371200004 375.71196384000035 375.71306112000036 375.71388408000035 375.71348784000037 375.71260392000039 375.71236008000039 375.71117136000044 375.71074464000037 375.71101896000039 375.70797096000041 375.70611168000039 375.70291128000042 375.69626664000043 375.69492552000042 375.69922320000035 375.69382824000041 375.69099360000041 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 10 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 7511.0435585279984 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 24 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 6 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 11 "$s" resize 83 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 368.19840000000039 0 "$s" row 1 368.50320000000039 56515895.102177359 "$s" row 2 368.80800000000039 113276447.75890961 "$s" row 3 369.11280000000039 170526315.5247516 "$s" row 4 369.41760000000039 228265498.39970335 "$s" row 5 369.72240000000039 286493996.38376492 "$s" row 6 370.02720000000039 345211809.47693616 "$s" row 7 370.33200000000039 404418937.67921722 "$s" row 8 370.63680000000039 464115380.99060804 "$s" row 9 370.94160000000039 524301139.41110855 "$s" row 10 371.24640000000039 584976212.94071889 "$s" row 11 371.55120000000039 645895944.0248841 "$s" row 12 371.85600000000039 707549647.77271402 "$s" row 13 372.16080000000039 769692666.62965357 "$s" row 14 372.46560000000039 832569658.15025783 "$s" row 15 372.77040000000039 895935964.77997172 "$s" row 16 373.07520000000039 959791586.51879573 "$s" row 17 373.38000000000039 1024381180.9212838 "$s" row 18 373.68480000000039 1089460090.4328823 "$s" row 19 373.98960000000039 1155272972.6081448 "$s" row 20 374.29440000000039 1221575169.8925176 "$s" row 21 374.59920000000039 1288611339.8405547 "$s" row 22 374.90400000000039 1356136824.8977017 "$s" row 23 375.20880000000039 1424396282.6185133 "$s" row 24 375.51360000000039 1493145055.4484348 "$s" row 25 375.81840000000039 1562383143.387466 "$s" row 26 376.12320000000039 1632355203.9901617 "$s" row 27 376.4280000000004 1702816579.7019672 "$s" row 28 376.7328000000004 1774011928.0774374 "$s" row 29 377.0376000000004 1845696591.5620172 "$s" row 30 377.3424000000004 1917870570.1557069 "$s" row 31 377.6472000000004 1990778521.4130614 "$s" row 32 377.9520000000004 2064420445.3340805 "$s" row 33 378.2568000000004 2138307026.8096542 "$s" row 34 378.5616000000004 2212927580.9488931 "$s" row 35 378.8664000000004 2288037450.1972408 "$s" row 36 379.1712000000004 2363391977.0001445 "$s" row 37 379.4760000000004 2439480476.466712 "$s" row 38 379.7808000000004 2516058291.0423894 "$s" row 39 380.0856000000004 2593370078.2817316 "$s" row 40 380.3904000000004 2670926523.0756288 "$s" row 41 380.6952000000004 2748972282.9786358 "$s" row 42 381.0000000000004 2827752015.5453072 "$s" row 43 381.3048000000004 2906776405.6665335 "$s" row 44 381.6096000000004 2986534768.4514241 "$s" row 45 381.9144000000004 3066782446.3454251 "$s" row 46 382.2192000000004 3147519439.3485355 "$s" row 47 382.5240000000004 3228745747.4607558 "$s" row 48 382.8288000000004 3310706028.2366405 "$s" row 49 383.1336000000004 3392910966.5670805 "$s" row 50 383.4384000000004 3475849877.5611854 "$s" row 51 383.7432000000004 3559278103.6643991 "$s" row 52 384.0480000000004 3643440302.4312782 "$s" row 53 384.3528000000004 3728091816.3072662 "$s" row 54 384.6576000000004 3812743330.1832552 "$s" row 55 384.9624000000004 3898128816.7229085 "$s" row 56 385.2672000000004 3983758960.8171163 "$s" row 57 385.5720000000004 4070123077.5749898 "$s" row 58 385.8768000000004 4156731851.8874168 "$s" row 59 386.1816000000004 4244074598.8635097 "$s" row 60 386.4864000000004 4331662003.3941565 "$s" row 61 386.7912000000004 4419738723.0339136 "$s" row 62 387.0960000000004 4508304757.7827806 "$s" row 63 387.4008000000004 4597360107.6407576 "$s" row 64 387.7056000000004 4686904772.6078434 "$s" row 65 388.0104000000004 4776938752.6840391 "$s" row 66 388.3152000000004 4867217390.3147898 "$s" row 67 388.6200000000004 4958230000.6092052 "$s" row 68 388.9248000000004 5049731926.0127306 "$s" row 69 389.2296000000004 5141723166.5253658 "$s" row 70 389.5344000000004 5234203722.14711 "$s" row 71 389.8392000000004 5327173592.877964 "$s" row 72 390.1440000000004 5420632778.7179298 "$s" row 73 390.4488000000004 5514581279.6670027 "$s" row 74 390.7536000000004 5609508410.8342962 "$s" row 75 391.0584000000004 5705169514.6652546 "$s" row 76 391.3632000000004 5801564591.1598778 "$s" row 77 391.6680000000004 5898693640.3181658 "$s" row 78 391.9728000000004 5996556662.1401167 "$s" row 79 392.2776000000004 6095398314.1802883 "$s" row 80 392.5824000000004 6194729281.3295708 "$s" row 81 392.8872000000004 6295038878.6970711 "$s" row 82 393.19200000000041 6396082448.7282362 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 6504 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 6504.0655809999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 85.359240000000099 103.6167600000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 283.47924000000029 304.14468000000033 "$s" setFSeries {m} {04-22-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-22-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 295.0768800000003 @ 3 295.13784000000032 295.16832000000028 @ 2 295.19880000000029 295.16832000000028 @ 3 295.13784000000032 295.16832000000028 @ 2 295.13784000000032 295.10736000000031 295.16832000000028 295.13784000000032 @ 4 295.10736000000031 295.13784000000032 @ 3 295.10736000000031 295.0768800000003 295.04640000000029 @ 2 295.0768800000003 295.10736000000031 295.0768800000003 @ 2 295.04640000000029 295.0768800000003 295.04640000000029 295.13784000000032 @ 2 295.10736000000031 295.0768800000003 295.10736000000031 295.13784000000032 @ 3 295.16832000000028 295.29024000000032 295.32072000000028 @ 4 295.29024000000032 @ 2 295.32072000000028 @ 4 295.29024000000032 295.32072000000028 @ 3 295.3816800000003 295.41216000000031 @ 5 295.3816800000003 295.35120000000029 295.3816800000003 295.44264000000032 295.41216000000031 295.47312000000028 295.41216000000031 295.16832000000028 295.19880000000029 295.32072000000028 295.41216000000031 295.47312000000028 295.2292800000003 295.44264000000032 295.3816800000003 295.35120000000029 295.32072000000028 295.19880000000029 @ 2 295.16832000000028 295.0768800000003 294.89400000000029 294.95496000000031 294.98544000000032 295.10736000000031 @ 2 295.25976000000031 @ 2 295.50360000000029 295.41216000000031 295.2292800000003 295.16832000000028 295.32072000000028 @ 3 295.25976000000031 295.35120000000029 295.65600000000029 295.62552000000028 295.32072000000028 295.16832000000028 294.98544000000032 294.71112000000028 294.58920000000029 294.71112000000028 @ 2 294.98544000000032 294.95496000000031 294.83304000000032 295.10736000000031 295.04640000000029 294.83304000000032 295.0768800000003 295.41216000000031 295.3816800000003 295.35360792000029 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 97 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 135.92086364159996 @ 8 121.76244034559997 0 @ 6 25.485161932799993 135.92086364159996 @ 3 39.643585228799985 0 @ 5 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 45 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 368.19840000000039 11355.055483391998 "$s" row 1 393.19200000000041 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 43 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 30 "$s" resize 90 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 79.24800000000009 0 0 "$s" row 1 79.24800000000009 6194.8765289318389 4403.6499999999996 "$s" row 2 79.24800000000009 6480.5935110451182 4583.1000000000004 "$s" row 3 82.296000000000092 0 0 "$s" row 4 82.296000000000092 6609.2369451125742 4894.1847589999998 "$s" row 5 82.296000000000092 6989.0508084510702 5118.0924349999996 "$s" row 6 85.344000000000094 0 0 "$s" row 7 85.344000000000094 6720.8619543782379 5163.7186229999998 "$s" row 8 85.344000000000094 7137.6293025192936 5419.3555749999996 "$s" row 9 85.953600000000094 0 0 "$s" row 10 85.953600000000094 6743.458797958654 5217.4009729999998 "$s" row 11 85.953600000000094 7192.3374501350381 5497.6966270000003 "$s" row 12 86.563200000000094 0 0 "$s" row 13 86.563200000000094 6746.7718690099182 5258.9693010000001 "$s" row 14 86.563200000000094 7223.7691498521581 5556.5408669999997 "$s" row 15 87.172800000000095 0 0 "$s" row 16 87.172800000000095 6750.3397916805097 5300.557855 "$s" row 17 87.172800000000095 7237.7859889151978 5607.6296080000002 "$s" row 18 87.782400000000095 0 0 "$s" row 19 87.782400000000095 6772.6817836415985 5354.8418259999999 "$s" row 20 87.782400000000095 7290.0305708774376 5679.8494190000001 "$s" row 21 88.392000000000095 0 0 "$s" row 22 88.392000000000095 6787.1233754035184 5403.4107739999999 "$s" row 23 88.392000000000095 7324.0107867878378 5743.576736 "$s" row 24 89.001600000000096 0 0 "$s" row 25 89.001600000000096 6779.3079257441259 5435.9395009999998 "$s" row 26 89.001600000000096 7334.4597031802859 5792.5296200000003 "$s" row 27 89.611200000000096 0 0 "$s" row 28 89.611200000000096 6782.3661451760618 5476.5187930000002 "$s" row 29 89.611200000000096 7385.5149775856626 5863.4987389999997 "$s" row 30 90.220800000000096 0 0 "$s" row 31 90.220800000000096 6785.5942656875504 5517.0263880000002 "$s" row 32 90.220800000000096 7395.6240918190051 5911.913834 "$s" row 33 90.830400000000097 0 0 "$s" row 34 90.830400000000097 6799.3562531312618 5564.8776770000004 "$s" row 35 90.830400000000097 7427.6504453145581 5969.1627570000001 "$s" row 36 91.440000000000097 0 0 "$s" row 37 91.440000000000097 6802.1596209438703 5606.9078929999996 "$s" row 38 91.440000000000097 7454.7496675031025 6028.8759149999996 "$s" row 39 92.049600000000098 0 0 "$s" row 40 92.049600000000098 6797.1475390970854 5641.5566600000002 "$s" row 41 92.049600000000098 7464.094226878462 6076.1158880000003 "$s" row 42 92.659200000000098 0 0 "$s" row 43 92.659200000000098 6788.9922872785901 5672.3774540000004 "$s" row 44 92.659200000000098 7483.0381972485111 6123.668388 "$s" row 45 93.268800000000098 0 0 "$s" row 46 93.268800000000098 6784.2350570511344 5706.8727360000003 "$s" row 47 93.268800000000098 7491.6182017658866 6169.9035590000003 "$s" row 48 93.878400000000099 0 0 "$s" row 49 93.878400000000099 6786.9534743239665 5746.1504940000004 "$s" row 50 93.878400000000099 7500.5380084423668 6215.9826149999999 "$s" row 51 94.488000000000099 0 0 "$s" row 52 94.488000000000099 6781.7714913976306 5780.049301 "$s" row 53 94.488000000000099 7501.9821676185584 6257.3509899999999 "$s" row 54 95.097600000000099 0 0 "$s" row 55 95.097600000000099 6783.8952548920306 5818.5555880000002 "$s" row 56 95.097600000000099 7501.8122665390056 6290.6487299999999 "$s" row 57 95.7072000000001 0 0 "$s" row 58 95.7072000000001 6778.7982225054702 5852.2795079999996 "$s" row 59 95.7072000000001 7503.2564257151989 6331.3926019999999 "$s" row 60 96.3168000000001 0 0 "$s" row 61 96.3168000000001 6770.5580201471985 5881.6647679999996 "$s" row 62 96.3168000000001 7493.4871136409583 6363.7419849999997 "$s" row 63 96.9264000000001 0 0 "$s" row 64 96.9264000000001 6782.7908978749429 5929.6563040000001 "$s" row 65 96.9264000000001 7484.8221585838064 6400.2840029999998 "$s" row 66 97.536000000000101 0 0 "$s" row 67 97.536000000000101 6784.4049581306863 5967.1649539999999 "$s" row 68 97.536000000000101 7454.5797664235488 6422.919699 "$s" row 69 98.145600000000101 0 0 "$s" row 70 98.145600000000101 6796.1281326197741 6012.7737619999998 "$s" row 71 98.145600000000101 7425.3567807406062 6445.184972 "$s" row 72 98.755200000000102 0 0 "$s" row 73 98.755200000000102 6780.4122827612146 6037.2513740000004 "$s" row 74 98.755200000000102 7396.2187455974381 6466.5806560000001 "$s" row 75 99.364800000000102 0 0 "$s" row 76 99.364800000000102 6792.0505067105269 6082.7056339999999 "$s" row 77 99.364800000000102 7367.5904136929266 6487.3906059999999 "$s" row 78 99.974400000000102 0 0 "$s" row 79 99.974400000000102 6766.1405920788457 6097.6664460000002 "$s" row 80 99.974400000000102 7339.1319828679652 6507.5121929999996 "$s" row 81 100.5840000000001 0 0 "$s" row 82 100.5840000000001 6760.1940542945267 6129.8341620000001 "$s" row 83 100.5840000000001 7311.523057440766 6527.2997939999996 "$s" row 84 102.1080000000001 0 0 "$s" row 85 102.1080000000001 6734.2841396628455 6199.4782569999998 "$s" row 86 102.1080000000001 7233.3685608468459 6568.4728770000002 "$s" row 87 103.6320000000001 0 0 "$s" row 88 103.6320000000001 6707.6946207129577 6266.901167 "$s" row 89 103.6320000000001 7157.592679366654 6607.0150110000004 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 6504 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 26 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 368.19839999999999 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 35 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 288.03600000000029 291.37356000000034 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 52 "$s" resize 200 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 18 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 0 288.03600000000029 288.03600000000029 "$s" row 1 0 288.95040000000029 288.95040000000029 "$s" row 2 0 289.25520000000029 289.25520000000029 "$s" row 3 0 289.56000000000029 289.56000000000029 "$s" row 4 0 289.86480000000029 289.86480000000029 "$s" row 5 0 290.16960000000029 290.16960000000029 "$s" row 6 0 290.47440000000029 290.47440000000029 "$s" row 7 0 290.77920000000029 290.77920000000029 "$s" row 8 0 291.08400000000029 291.08400000000029 "$s" row 9 0 291.38880000000029 291.38880000000029 "$s" row 10 707.92116479999981 288.03600000000029 289.03879200000029 "$s" row 11 707.92116479999981 288.95040000000029 289.95355282224028 "$s" row 12 707.92116479999981 289.25520000000029 290.1708185904003 "$s" row 13 707.92116479999981 289.56000000000029 290.38808435856032 "$s" row 14 707.92116479999981 289.86480000000029 290.60535012672028 "$s" row 15 707.92116479999981 290.16960000000029 290.8226158948803 "$s" row 16 707.92116479999981 290.47440000000029 291.03988169352027 "$s" row 17 707.92116479999981 290.77920000000029 291.25714746168029 "$s" row 18 707.92116479999981 291.08400000000029 291.47441322984031 "$s" row 19 707.92116479999981 291.38880000000029 291.69167899800033 "$s" row 20 1415.8423295999996 288.03600000000029 290.02634400000028 "$s" row 21 1415.8423295999996 288.95040000000029 290.63597508960032 "$s" row 22 1415.8423295999996 289.25520000000029 290.82729177072031 "$s" row 23 1415.8423295999996 289.56000000000029 291.01860845184029 "$s" row 24 1415.8423295999996 289.86480000000029 291.20992513296034 "$s" row 25 1415.8423295999996 290.16960000000029 291.40124184456033 "$s" row 26 1415.8423295999996 290.47440000000029 291.59255852568032 "$s" row 27 1415.8423295999996 290.77920000000029 291.7838752068003 "$s" row 28 1415.8423295999996 291.08400000000029 291.97519188792029 "$s" row 29 1415.8423295999996 291.38880000000029 292.16650859952034 "$s" row 30 2123.7634943999992 288.03600000000029 290.47744800000032 "$s" row 31 2123.7634943999992 288.95040000000029 291.39108843840029 "$s" row 32 2123.7634943999992 289.25520000000029 291.56636404416031 "$s" row 33 2123.7634943999992 289.56000000000029 291.74163968040034 "$s" row 34 2123.7634943999992 289.86480000000029 291.9169152861603 "$s" row 35 2123.7634943999992 290.16960000000029 292.09219089192027 "$s" row 36 2123.7634943999992 290.47440000000029 292.26746649768035 "$s" row 37 2123.7634943999992 290.77920000000029 292.44274213392032 "$s" row 38 2123.7634943999992 291.08400000000029 292.61801773968034 "$s" row 39 2123.7634943999992 291.38880000000029 292.7932933454403 "$s" row 40 2831.6846591999993 288.03600000000029 291.23640000000029 "$s" row 41 2831.6846591999993 288.95040000000029 292.1513719572003 "$s" row 42 2831.6846591999993 289.25520000000029 292.31500569648028 "$s" row 43 2831.6846591999993 289.56000000000029 292.47863943576033 "$s" row 44 2831.6846591999993 289.86480000000029 292.64227320552033 "$s" row 45 2831.6846591999993 290.16960000000029 292.80590694480031 "$s" row 46 2831.6846591999993 290.47440000000029 292.9695406840803 "$s" row 47 2831.6846591999993 290.77920000000029 293.13317442336029 "$s" row 48 2831.6846591999993 291.08400000000029 293.29680819312028 "$s" row 49 2831.6846591999993 291.38880000000029 293.46044193240033 "$s" row 50 3539.6058239999988 288.03600000000029 291.98620800000032 "$s" row 51 3539.6058239999988 288.95040000000029 292.90078097400033 "$s" row 52 3539.6058239999988 289.25520000000029 293.05527126192032 "$s" row 53 3539.6058239999988 289.56000000000029 293.20976158032033 "$s" row 54 3539.6058239999988 289.86480000000029 293.36425189872028 "$s" row 55 3539.6058239999988 290.16960000000029 293.51874221712035 "$s" row 56 3539.6058239999988 290.47440000000029 293.67323250504035 "$s" row 57 3539.6058239999988 290.77920000000029 293.8277228234403 "$s" row 58 3539.6058239999988 291.08400000000029 293.9822131418403 "$s" row 59 3539.6058239999988 291.38880000000029 294.13670346024031 "$s" row 60 4247.5269887999984 288.03600000000029 292.76344800000032 "$s" row 61 4247.5269887999984 288.95040000000029 293.67672444624031 "$s" row 62 4247.5269887999984 289.25520000000029 293.78188678608029 "$s" row 63 4247.5269887999984 289.56000000000029 293.92884695952029 "$s" row 64 4247.5269887999984 289.86480000000029 294.07580710248033 "$s" row 65 4247.5269887999984 290.16960000000029 294.22276724544031 "$s" row 66 4247.5269887999984 290.47440000000029 294.36972738840035 "$s" row 67 4247.5269887999984 290.77920000000029 294.51668753136028 "$s" row 68 4247.5269887999984 291.08400000000029 294.66364767432032 "$s" row 69 4247.5269887999984 291.38880000000029 294.8106078172803 "$s" row 70 4955.4481535999985 288.03600000000029 293.67480000000029 "$s" row 71 4955.4481535999985 288.95040000000029 294.59046373128029 "$s" row 72 4955.4481535999985 289.25520000000029 294.59046373128029 "$s" row 73 4955.4481535999985 289.56000000000029 294.6340957293603 "$s" row 74 4955.4481535999985 289.86480000000029 294.77465415792034 "$s" row 75 4955.4481535999985 290.16960000000029 294.91521258648032 "$s" row 76 4955.4481535999985 290.47440000000029 295.05577104552032 "$s" row 77 4955.4481535999985 290.77920000000029 295.1963294740803 "$s" row 78 4955.4481535999985 291.08400000000029 295.33688793312029 "$s" row 79 4955.4481535999985 291.38880000000029 295.47744636168034 "$s" row 80 5663.3693183999985 288.03600000000029 294.54957600000029 "$s" row 81 5663.3693183999985 288.95040000000029 295.46301764784033 "$s" row 82 5663.3693183999985 289.25520000000029 295.46301764784033 "$s" row 83 5663.3693183999985 289.56000000000029 295.46301764784033 "$s" row 84 5663.3693183999985 289.86480000000029 295.46301764784033 "$s" row 85 5663.3693183999985 290.16960000000029 295.5952990800003 "$s" row 86 5663.3693183999985 290.47440000000029 295.73028972696034 "$s" row 87 5663.3693183999985 290.77920000000029 295.86528037392031 "$s" row 88 5663.3693183999985 291.08400000000029 296.00027099040034 "$s" row 89 5663.3693183999985 291.38880000000029 296.13526163736032 "$s" row 90 6371.2904831999986 288.03600000000029 295.38777600000031 "$s" row 91 6371.2904831999986 288.95040000000029 296.30109179592034 "$s" row 92 6371.2904831999986 289.25520000000029 296.30109179592034 "$s" row 93 6371.2904831999986 289.56000000000029 296.30109179592034 "$s" row 94 6371.2904831999986 289.86480000000029 296.30109179592034 "$s" row 95 6371.2904831999986 290.16960000000029 296.30109179592034 "$s" row 96 6371.2904831999986 290.47440000000029 296.3931446877603 "$s" row 97 6371.2904831999986 290.77920000000029 296.52320900472029 "$s" row 98 6371.2904831999986 291.08400000000029 296.65327332168033 "$s" row 99 6371.2904831999986 291.38880000000029 296.78333766912033 "$s" row 100 7079.2116479999977 288.03600000000029 296.19549600000033 "$s" row 101 7079.2116479999977 288.95040000000029 297.10968132936034 "$s" row 102 7079.2116479999977 289.25520000000029 297.10968132936034 "$s" row 103 7079.2116479999977 289.56000000000029 297.10968132936034 "$s" row 104 7079.2116479999977 289.86480000000029 297.10968132936034 "$s" row 105 7079.2116479999977 290.16960000000029 297.10968132936034 "$s" row 106 7079.2116479999977 290.47440000000029 297.10968132936034 "$s" row 107 7079.2116479999977 290.77920000000029 297.17025950640033 "$s" row 108 7079.2116479999977 291.08400000000029 297.29590632648029 "$s" row 109 7079.2116479999977 291.38880000000029 297.42155314656031 "$s" row 110 7787.1328127999977 288.03600000000029 296.9788320000003 "$s" row 111 7787.1328127999977 288.95040000000029 297.8926341652803 "$s" row 112 7787.1328127999977 289.25520000000029 297.8926341652803 "$s" row 113 7787.1328127999977 289.56000000000029 297.8926341652803 "$s" row 114 7787.1328127999977 289.86480000000029 297.8926341652803 "$s" row 115 7787.1328127999977 290.16960000000029 297.8926341652803 "$s" row 116 7787.1328127999977 290.47440000000029 297.8926341652803 "$s" row 117 7787.1328127999977 290.77920000000029 297.8926341652803 "$s" row 118 7787.1328127999977 291.08400000000029 297.92843633904033 "$s" row 119 7787.1328127999977 291.38880000000029 298.05007915392031 "$s" row 120 8495.0539775999969 288.03600000000029 297.73778400000032 "$s" row 121 8495.0539775999969 288.95040000000029 298.6529944936803 "$s" row 122 8495.0539775999969 289.25520000000029 298.6529944936803 "$s" row 123 8495.0539775999969 289.56000000000029 298.6529944936803 "$s" row 124 8495.0539775999969 289.86480000000029 298.6529944936803 "$s" row 125 8495.0539775999969 290.16960000000029 298.6529944936803 "$s" row 126 8495.0539775999969 290.47440000000029 298.6529944936803 "$s" row 127 8495.0539775999969 290.77920000000029 298.6529944936803 "$s" row 128 8495.0539775999969 291.08400000000029 298.6529944936803 "$s" row 129 8495.0539775999969 291.38880000000029 298.66922829408031 "$s" row 130 9202.9751423999969 288.03600000000029 298.4784480000003 "$s" row 131 9202.9751423999969 288.95040000000029 299.39322330024032 "$s" row 132 9202.9751423999969 289.25520000000029 299.39322330024032 "$s" row 133 9202.9751423999969 289.56000000000029 299.39322330024032 "$s" row 134 9202.9751423999969 289.86480000000029 299.39322330024032 "$s" row 135 9202.9751423999969 290.16960000000029 299.39322330024032 "$s" row 136 9202.9751423999969 290.47440000000029 299.39322330024032 "$s" row 137 9202.9751423999969 290.77920000000029 299.39322330024032 "$s" row 138 9202.9751423999969 291.08400000000029 299.39322330024032 "$s" row 139 9202.9751423999969 291.38880000000029 299.39322330024032 "$s" row 140 9910.896307199997 288.03600000000029 299.2008240000003 "$s" row 141 9910.896307199997 288.95040000000029 300.11534610288032 "$s" row 142 9910.896307199997 289.25520000000029 300.11534610288032 "$s" row 143 9910.896307199997 289.56000000000029 300.11534610288032 "$s" row 144 9910.896307199997 289.86480000000029 300.11534610288032 "$s" row 145 9910.896307199997 290.16960000000029 300.11534610288032 "$s" row 146 9910.896307199997 290.47440000000029 300.11534610288032 "$s" row 147 9910.896307199997 290.77920000000029 300.11534610288032 "$s" row 148 9910.896307199997 291.08400000000029 300.11534610288032 "$s" row 149 9910.896307199997 291.38880000000029 300.11534610288032 "$s" row 150 10618.817471999997 288.03600000000029 299.90796000000034 "$s" row 151 10618.817471999997 288.95040000000029 300.82105554744032 "$s" row 152 10618.817471999997 289.25520000000029 300.82105554744032 "$s" row 153 10618.817471999997 289.56000000000029 300.82105554744032 "$s" row 154 10618.817471999997 289.86480000000029 300.82105554744032 "$s" row 155 10618.817471999997 290.16960000000029 300.82105554744032 "$s" row 156 10618.817471999997 290.47440000000029 300.82105554744032 "$s" row 157 10618.817471999997 290.77920000000029 300.82105554744032 "$s" row 158 10618.817471999997 291.08400000000029 300.82105554744032 "$s" row 159 10618.817471999997 291.38880000000029 300.82105554744032 "$s" row 160 11326.738636799997 288.03600000000029 301.51120800000035 "$s" row 161 11326.738636799997 288.95040000000029 301.51178452920033 "$s" row 162 11326.738636799997 289.25520000000029 301.51178452920033 "$s" row 163 11326.738636799997 289.56000000000029 301.51178452920033 "$s" row 164 11326.738636799997 289.86480000000029 301.51178452920033 "$s" row 165 11326.738636799997 290.16960000000029 301.51178452920033 "$s" row 166 11326.738636799997 290.47440000000029 301.51178452920033 "$s" row 167 11326.738636799997 290.77920000000029 301.51178452920033 "$s" row 168 11326.738636799997 291.08400000000029 301.51178452920033 "$s" row 169 11326.738636799997 291.38880000000029 301.51178452920033 "$s" row 170 12034.659801599997 288.03600000000029 302.18786400000033 "$s" row 171 12034.659801599997 288.95040000000029 302.18875965480032 "$s" row 172 12034.659801599997 289.25520000000029 302.18875965480032 "$s" row 173 12034.659801599997 289.56000000000029 302.18875965480032 "$s" row 174 12034.659801599997 289.86480000000029 302.18875965480032 "$s" row 175 12034.659801599997 290.16960000000029 302.18875965480032 "$s" row 176 12034.659801599997 290.47440000000029 302.18875965480032 "$s" row 177 12034.659801599997 290.77920000000029 302.18875965480032 "$s" row 178 12034.659801599997 291.08400000000029 302.18875965480032 "$s" row 179 12034.659801599997 291.38880000000029 302.18875965480032 "$s" row 180 14158.423295999995 288.03600000000029 304.14772800000031 "$s" row 181 14158.423295999995 288.95040000000029 304.14711093240032 "$s" row 182 14158.423295999995 289.25520000000029 304.14711093240032 "$s" row 183 14158.423295999995 289.56000000000029 304.14711093240032 "$s" row 184 14158.423295999995 289.86480000000029 304.14711093240032 "$s" row 185 14158.423295999995 290.16960000000029 304.14711093240032 "$s" row 186 14158.423295999995 290.47440000000029 304.14711093240032 "$s" row 187 14158.423295999995 290.77920000000029 304.14711093240032 "$s" row 188 14158.423295999995 291.08400000000029 304.14711093240032 "$s" row 189 14158.423295999995 291.38880000000029 304.14711093240032 "$s" row 190 16990.107955199994 288.03600000000029 306.61660800000033 "$s" row 191 16990.107955199994 288.95040000000029 306.61703472000033 "$s" row 192 16990.107955199994 289.25520000000029 306.61703472000033 "$s" row 193 16990.107955199994 289.56000000000029 306.61703472000033 "$s" row 194 16990.107955199994 289.86480000000029 306.61703472000033 "$s" row 195 16990.107955199994 290.16960000000029 306.61703472000033 "$s" row 196 16990.107955199994 290.47440000000029 306.61703472000033 "$s" row 197 16990.107955199994 290.77920000000029 306.61703472000033 "$s" row 198 16990.107955199994 291.08400000000029 306.61703472000033 "$s" row 199 16990.107955199994 291.38880000000029 306.61703472000033 "$o" {TableSlot} {Tail Water Reference Elevation} set s "$o.Tail Water Reference Elevation" "$s" order 54 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 289.56000000000029 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 23 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 6396082448.7282362 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 7 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 7135845341.1840096 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 7995103060.9102964 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 32 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 5420632778.7179298 0 0 "$s" row 1 NaN 6396082448.7282362 3228745747.4607558 "$s" row 2 NaN NaN 5420632778.7179298 "$s" row 3 NaN NaN 6396082448.7282362 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 50 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 51 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 48 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 41 "$s" sourceSlotName {Grand Coulee.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 6396082448.7282362 11355.055483391998 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 44 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 5898693640.3181667 5609508410.8342972 5609508410.8342972 "$s" row 1 NaN 6194729281.3295717 5898693640.3181667 "$s" row 2 NaN NaN 6194729281.3295727 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 25 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 36 "$s" resize 3 4 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 96.3168000000001 3511.288977407999 0 0 "$s" row 1 NaN NaN 6796.0431820799986 6770.5580201471967 "$s" row 2 NaN NaN NaN 7493.4871136409583 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 61 "$s" resize 6 3 "$s" setRowLabels {} {} {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 97.536000000000101 94.488000000000099 85.344000000000094 "$s" row 1 NaN 100.5840000000001 90.220800000000096 "$s" row 2 NaN NaN 92.659200000000098 "$s" row 3 NaN NaN 94.488000000000099 "$s" row 4 NaN NaN 96.3168000000001 "$s" row 5 NaN NaN 103.6320000000001 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 57 "$s" resize 27 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 -5663.3693183999985 -5.3340000000000058 "$s" row 1 -2831.6846591999993 -2.240280000000002 "$s" row 2 -566.33693183999981 -0.36880800000000036 "$s" row 3 0 0 "$s" row 4 566.33693183999992 0.36880800000000036 "$s" row 5 1132.6738636799998 0.78028800000000087 "$s" row 6 1699.0107955199996 1.2283440000000014 "$s" row 7 2265.3477273599997 1.7160240000000018 "$s" row 8 2831.6846591999993 2.240280000000002 "$s" row 9 3398.0215910399993 2.8072080000000033 "$s" row 10 3964.3585228799993 3.4137600000000035 "$s" row 11 4530.6954547199994 4.0568880000000043 "$s" row 12 5097.0323865599985 4.739640000000005 "$s" row 13 5663.3693183999985 5.3340000000000058 "$s" row 14 6229.7062502399986 5.9436000000000062 "$s" row 15 6796.0431820799986 6.5532000000000066 "$s" row 16 7362.3801139199977 7.0866000000000078 "$s" row 17 7928.7170457599987 7.467600000000008 "$s" row 18 8495.0539775999987 7.7419200000000075 "$s" row 19 9061.3909094399969 7.955280000000009 "$s" row 20 9627.7278412799969 8.1076800000000091 "$s" row 21 10194.064773119997 8.1991200000000077 "$s" row 22 10760.401704959997 8.2905600000000081 "$s" row 23 11326.738636799997 8.3515200000000078 "$s" row 24 11893.075568639997 8.4124800000000093 "$s" row 25 12459.412500479997 8.4429600000000082 "$s" row 26 13025.749432319997 8.473440000000009 "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 58 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 2831.6846591999993 1132.6738636799998 0 "$s" row 1 NaN 3398.0215910399993 1132.6738636799998 "$s" row 2 NaN NaN 4247.5269887999993 "$s" row 3 NaN NaN 8495.0539775999987 "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 500 "$s" resize 3 4 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 290.77920000000029 2831.6846591999993 1415.8423295999996 0 "$s" row 1 NaN NaN 3539.6058239999993 4247.5269887999993 "$s" row 2 NaN NaN NaN 8495.0539775999987 "$o" {TableSlot} {Convolved Stage Flow Tailwater Table} set s "$o.Convolved Stage Flow Tailwater Table" "$s" order 500 "$s" sourceSlotName {Grand Coulee.Stage Flow Tailwater Table} "$s" resize 180 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Downstream Stage} {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 288.95040000000029 0 288.95040000000029 "$s" row 1 288.95040000000029 707.92116479999981 289.95355282224028 "$s" row 2 288.95040000000029 1415.8423295999996 290.63597508960032 "$s" row 3 288.95040000000029 2123.7634943999997 291.39108843840029 "$s" row 4 288.95040000000029 2831.6846591999993 292.1513719572003 "$s" row 5 288.95040000000029 3539.6058239999993 292.90078097400033 "$s" row 6 288.95040000000029 4247.5269887999993 293.67672444624031 "$s" row 7 288.95040000000029 4955.4481535999994 294.59046373128029 "$s" row 8 288.95040000000029 5663.3693183999985 295.46301764784033 "$s" row 9 288.95040000000029 6371.2904831999986 296.30109179592034 "$s" row 10 288.95040000000029 7079.2116479999986 297.10968132936034 "$s" row 11 288.95040000000029 7787.1328127999977 297.8926341652803 "$s" row 12 288.95040000000029 8495.0539775999987 298.6529944936803 "$s" row 13 288.95040000000029 9202.9751423999987 299.39322330024032 "$s" row 14 288.95040000000029 9910.8963071999988 300.11534610288032 "$s" row 15 288.95040000000029 10618.817471999997 300.82105554744032 "$s" row 16 288.95040000000029 11326.738636799997 301.51178452920033 "$s" row 17 288.95040000000029 12034.659801599997 302.18875965480032 "$s" row 18 288.95040000000029 14158.423295999997 304.14711093240032 "$s" row 19 288.95040000000029 16990.107955199997 306.61703472000033 "$s" row 20 289.25520000000029 0 289.25520000000029 "$s" row 21 289.25520000000029 707.92116479999981 290.1708185904003 "$s" row 22 289.25520000000029 1415.8423295999996 290.82729177072031 "$s" row 23 289.25520000000029 2123.7634943999997 291.56636404416031 "$s" row 24 289.25520000000029 2831.6846591999993 292.31500569648028 "$s" row 25 289.25520000000029 3539.6058239999993 293.05527126192032 "$s" row 26 289.25520000000029 4247.5269887999993 293.78188678608029 "$s" row 27 289.25520000000029 4955.4481535999994 294.59046373128029 "$s" row 28 289.25520000000029 5663.3693183999985 295.46301764784033 "$s" row 29 289.25520000000029 6371.2904831999986 296.30109179592034 "$s" row 30 289.25520000000029 7079.2116479999986 297.10968132936034 "$s" row 31 289.25520000000029 7787.1328127999977 297.8926341652803 "$s" row 32 289.25520000000029 8495.0539775999987 298.6529944936803 "$s" row 33 289.25520000000029 9202.9751423999987 299.39322330024032 "$s" row 34 289.25520000000029 9910.8963071999988 300.11534610288032 "$s" row 35 289.25520000000029 10618.817471999997 300.82105554744032 "$s" row 36 289.25520000000029 11326.738636799997 301.51178452920033 "$s" row 37 289.25520000000029 12034.659801599997 302.18875965480032 "$s" row 38 289.25520000000029 14158.423295999997 304.14711093240032 "$s" row 39 289.25520000000029 16990.107955199997 306.61703472000033 "$s" row 40 289.56000000000029 0 289.56000000000029 "$s" row 41 289.56000000000029 707.92116479999981 290.38808435856032 "$s" row 42 289.56000000000029 1415.8423295999996 291.01860845184029 "$s" row 43 289.56000000000029 2123.7634943999997 291.74163968040034 "$s" row 44 289.56000000000029 2831.6846591999993 292.47863943576033 "$s" row 45 289.56000000000029 3539.6058239999993 293.20976158032033 "$s" row 46 289.56000000000029 4247.5269887999993 293.92884695952029 "$s" row 47 289.56000000000029 4955.4481535999994 294.6340957293603 "$s" row 48 289.56000000000029 5663.3693183999985 295.46301764784033 "$s" row 49 289.56000000000029 6371.2904831999986 296.30109179592034 "$s" row 50 289.56000000000029 7079.2116479999986 297.10968132936034 "$s" row 51 289.56000000000029 7787.1328127999977 297.8926341652803 "$s" row 52 289.56000000000029 8495.0539775999987 298.6529944936803 "$s" row 53 289.56000000000029 9202.9751423999987 299.39322330024032 "$s" row 54 289.56000000000029 9910.8963071999988 300.11534610288032 "$s" row 55 289.56000000000029 10618.817471999997 300.82105554744032 "$s" row 56 289.56000000000029 11326.738636799997 301.51178452920033 "$s" row 57 289.56000000000029 12034.659801599997 302.18875965480032 "$s" row 58 289.56000000000029 14158.423295999997 304.14711093240032 "$s" row 59 289.56000000000029 16990.107955199997 306.61703472000033 "$s" row 60 289.86480000000029 0 289.86480000000029 "$s" row 61 289.86480000000029 707.92116479999981 290.60535012672028 "$s" row 62 289.86480000000029 1415.8423295999996 291.20992513296034 "$s" row 63 289.86480000000029 2123.7634943999997 291.9169152861603 "$s" row 64 289.86480000000029 2831.6846591999993 292.64227320552033 "$s" row 65 289.86480000000029 3539.6058239999993 293.36425189872028 "$s" row 66 289.86480000000029 4247.5269887999993 294.07580710248033 "$s" row 67 289.86480000000029 4955.4481535999994 294.77465415792034 "$s" row 68 289.86480000000029 5663.3693183999985 295.46301764784033 "$s" row 69 289.86480000000029 6371.2904831999986 296.30109179592034 "$s" row 70 289.86480000000029 7079.2116479999986 297.10968132936034 "$s" row 71 289.86480000000029 7787.1328127999977 297.8926341652803 "$s" row 72 289.86480000000029 8495.0539775999987 298.6529944936803 "$s" row 73 289.86480000000029 9202.9751423999987 299.39322330024032 "$s" row 74 289.86480000000029 9910.8963071999988 300.11534610288032 "$s" row 75 289.86480000000029 10618.817471999997 300.82105554744032 "$s" row 76 289.86480000000029 11326.738636799997 301.51178452920033 "$s" row 77 289.86480000000029 12034.659801599997 302.18875965480032 "$s" row 78 289.86480000000029 14158.423295999997 304.14711093240032 "$s" row 79 289.86480000000029 16990.107955199997 306.61703472000033 "$s" row 80 290.16960000000029 0 290.16960000000029 "$s" row 81 290.16960000000029 707.92116479999981 290.8226158948803 "$s" row 82 290.16960000000029 1415.8423295999996 291.40124184456033 "$s" row 83 290.16960000000029 2123.7634943999997 292.09219089192027 "$s" row 84 290.16960000000029 2831.6846591999993 292.80590694480031 "$s" row 85 290.16960000000029 3539.6058239999993 293.51874221712035 "$s" row 86 290.16960000000029 4247.5269887999993 294.22276724544031 "$s" row 87 290.16960000000029 4955.4481535999994 294.91521258648032 "$s" row 88 290.16960000000029 5663.3693183999985 295.5952990800003 "$s" row 89 290.16960000000029 6371.2904831999986 296.30109179592034 "$s" row 90 290.16960000000029 7079.2116479999986 297.10968132936034 "$s" row 91 290.16960000000029 7787.1328127999977 297.8926341652803 "$s" row 92 290.16960000000029 8495.0539775999987 298.6529944936803 "$s" row 93 290.16960000000029 9202.9751423999987 299.39322330024032 "$s" row 94 290.16960000000029 9910.8963071999988 300.11534610288032 "$s" row 95 290.16960000000029 10618.817471999997 300.82105554744032 "$s" row 96 290.16960000000029 11326.738636799997 301.51178452920033 "$s" row 97 290.16960000000029 12034.659801599997 302.18875965480032 "$s" row 98 290.16960000000029 14158.423295999997 304.14711093240032 "$s" row 99 290.16960000000029 16990.107955199997 306.61703472000033 "$s" row 100 290.47440000000029 0 290.47440000000029 "$s" row 101 290.47440000000029 707.92116479999981 291.03988169352027 "$s" row 102 290.47440000000029 1415.8423295999996 291.59255852568032 "$s" row 103 290.47440000000029 2123.7634943999997 292.26746649768035 "$s" row 104 290.47440000000029 2831.6846591999993 292.9695406840803 "$s" row 105 290.47440000000029 3539.6058239999993 293.67323250504035 "$s" row 106 290.47440000000029 4247.5269887999993 294.36972738840035 "$s" row 107 290.47440000000029 4955.4481535999994 295.05577104552032 "$s" row 108 290.47440000000029 5663.3693183999985 295.73028972696034 "$s" row 109 290.47440000000029 6371.2904831999986 296.3931446877603 "$s" row 110 290.47440000000029 7079.2116479999986 297.10968132936034 "$s" row 111 290.47440000000029 7787.1328127999977 297.8926341652803 "$s" row 112 290.47440000000029 8495.0539775999987 298.6529944936803 "$s" row 113 290.47440000000029 9202.9751423999987 299.39322330024032 "$s" row 114 290.47440000000029 9910.8963071999988 300.11534610288032 "$s" row 115 290.47440000000029 10618.817471999997 300.82105554744032 "$s" row 116 290.47440000000029 11326.738636799997 301.51178452920033 "$s" row 117 290.47440000000029 12034.659801599997 302.18875965480032 "$s" row 118 290.47440000000029 14158.423295999997 304.14711093240032 "$s" row 119 290.47440000000029 16990.107955199997 306.61703472000033 "$s" row 120 290.77920000000029 0 290.77920000000029 "$s" row 121 290.77920000000029 707.92116479999981 291.25714746168029 "$s" row 122 290.77920000000029 1415.8423295999996 291.7838752068003 "$s" row 123 290.77920000000029 2123.7634943999997 292.44274213392032 "$s" row 124 290.77920000000029 2831.6846591999993 293.13317442336029 "$s" row 125 290.77920000000029 3539.6058239999993 293.8277228234403 "$s" row 126 290.77920000000029 4247.5269887999993 294.51668753136028 "$s" row 127 290.77920000000029 4955.4481535999994 295.1963294740803 "$s" row 128 290.77920000000029 5663.3693183999985 295.86528037392031 "$s" row 129 290.77920000000029 6371.2904831999986 296.52320900472029 "$s" row 130 290.77920000000029 7079.2116479999986 297.17025950640033 "$s" row 131 290.77920000000029 7787.1328127999977 297.8926341652803 "$s" row 132 290.77920000000029 8495.0539775999987 298.6529944936803 "$s" row 133 290.77920000000029 9202.9751423999987 299.39322330024032 "$s" row 134 290.77920000000029 9910.8963071999988 300.11534610288032 "$s" row 135 290.77920000000029 10618.817471999997 300.82105554744032 "$s" row 136 290.77920000000029 11326.738636799997 301.51178452920033 "$s" row 137 290.77920000000029 12034.659801599997 302.18875965480032 "$s" row 138 290.77920000000029 14158.423295999997 304.14711093240032 "$s" row 139 290.77920000000029 16990.107955199997 306.61703472000033 "$s" row 140 291.08400000000029 0 291.08400000000029 "$s" row 141 291.08400000000029 707.92116479999981 291.47441322984031 "$s" row 142 291.08400000000029 1415.8423295999996 291.97519188792029 "$s" row 143 291.08400000000029 2123.7634943999997 292.61801773968034 "$s" row 144 291.08400000000029 2831.6846591999993 293.29680819312028 "$s" row 145 291.08400000000029 3539.6058239999993 293.9822131418403 "$s" row 146 291.08400000000029 4247.5269887999993 294.66364767432032 "$s" row 147 291.08400000000029 4955.4481535999994 295.33688793312029 "$s" row 148 291.08400000000029 5663.3693183999985 296.00027099040034 "$s" row 149 291.08400000000029 6371.2904831999986 296.65327332168033 "$s" row 150 291.08400000000029 7079.2116479999986 297.29590632648029 "$s" row 151 291.08400000000029 7787.1328127999977 297.92843633904033 "$s" row 152 291.08400000000029 8495.0539775999987 298.6529944936803 "$s" row 153 291.08400000000029 9202.9751423999987 299.39322330024032 "$s" row 154 291.08400000000029 9910.8963071999988 300.11534610288032 "$s" row 155 291.08400000000029 10618.817471999997 300.82105554744032 "$s" row 156 291.08400000000029 11326.738636799997 301.51178452920033 "$s" row 157 291.08400000000029 12034.659801599997 302.18875965480032 "$s" row 158 291.08400000000029 14158.423295999997 304.14711093240032 "$s" row 159 291.08400000000029 16990.107955199997 306.61703472000033 "$s" row 160 291.38880000000029 0 291.38880000000029 "$s" row 161 291.38880000000029 707.92116479999981 291.69167899800033 "$s" row 162 291.38880000000029 1415.8423295999996 292.16650859952034 "$s" row 163 291.38880000000029 2123.7634943999997 292.7932933454403 "$s" row 164 291.38880000000029 2831.6846591999993 293.46044193240033 "$s" row 165 291.38880000000029 3539.6058239999993 294.13670346024031 "$s" row 166 291.38880000000029 4247.5269887999993 294.8106078172803 "$s" row 167 291.38880000000029 4955.4481535999994 295.47744636168034 "$s" row 168 291.38880000000029 5663.3693183999985 296.13526163736032 "$s" row 169 291.38880000000029 6371.2904831999986 296.78333766912033 "$s" row 170 291.38880000000029 7079.2116479999986 297.42155314656031 "$s" row 171 291.38880000000029 7787.1328127999977 298.05007915392031 "$s" row 172 291.38880000000029 8495.0539775999987 298.66922829408031 "$s" row 173 291.38880000000029 9202.9751423999987 299.39322330024032 "$s" row 174 291.38880000000029 9910.8963071999988 300.11534610288032 "$s" row 175 291.38880000000029 10618.817471999997 300.82105554744032 "$s" row 176 291.38880000000029 11326.738636799997 301.51178452920033 "$s" row 177 291.38880000000029 12034.659801599997 302.18875965480032 "$s" row 178 291.38880000000029 14158.423295999997 304.14711093240032 "$s" row 179 291.38880000000029 16990.107955199997 306.61703472000033 "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {Chief Joseph} set o "$ws.Chief Joseph" $ws SimObj $obj {LevelPowerReservoir} 465 1498 {} 1012 1893 714 1084 "$o" geospatialCoords 0 0 714 1084 "$o" objAttributes { \ \ \ \ } "$o" objOrd wsList 5042 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" sDM {Alternate Hydrologies} {None} {STD} "$o" sDM {Stochastic Optimization Storage Type} {None} {STD} "$o" sDM {Hydrologic Inflow} {Hydrologic Inflow and Loss} {STD} "$o" sDM {Spill} {Regulated} {STD} "$o" sDM {Unregulated Spill Type} {Bare Crest Only} {STD} "$o" sDM {Regulated Spill Overflow} {None} {STD} "$o" sDM {Input Outflow Adjustment} {None} {STD} "$o" sDM {Evaporation and Precipitation} {None} {STD} "$o" sDM {Surface Area Modification} {None} {STD} "$o" sDM {Evap and Precip Rate Specification} {None} {STD} "$o" sDM {Bank Storage} {None} {STD} "$o" sDM {Sediment} {None} {STD} "$o" sDM {Seepage} {None} {STD} "$o" sDM {Diversion from Reservoir} {None} {STD} "$o" sDM {Diversion Power} {None} {STD} "$o" sDM {Diversion Tailwater} {None} {STD} "$o" sDM {Diversion Power Bypass} {None} {STD} "$o" sDM {Target Operation} {None} {STD} "$o" sDM {Surcharge Release} {None} {STD} "$o" sDM {Elevation Max Duration Constraints} {None} {STD} "$o" sDM {Rating Curves Modification} {None} {STD} "$o" sDM {Low Flow Releases} {None} {STD} "$o" sDM {Flood Control Release} {None} {STD} "$o" sDM {Operating Levels} {None} {STD} "$o" sDM {Conditional Operating Levels} {None} {STD} "$o" sDM {Energy in Storage} {EIS Table Lookup} {STD} "$o" sDM {Reservoir Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reservoir Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Sediment Transport Calculations} {None} {STD} "$o" sDM {Reservoir Account Reconciliation} {No Method} {OLAM_NEVER} "$o" sDM {Spill Lower Bound MTLE} {Piecewise} {STD} "$o" sDM {Spill Upper Bound MTGE} {Line} {STD} "$o" sDM {Optimization Spill} {Opt Regulated} {STD} "$o" sDM {Optimization Evaporation} {None} {STD} "$o" sDM {Evaporation Linearization Automation} {None} {STD} "$o" sDM {Pool Elevation Linearization Automation} {None} {STD} "$o" sDM {Surface Area STLE} {Substitution} {STD} "$o" sDM {Surface Area STGE} {Substitution} {STD} "$o" sDM {Surface Area MTLE} {Tangent} {STD} "$o" sDM {Surface Area MTGE} {Tangent} {STD} "$o" sDM {Energy In Storage STLE} {Substitution} {STD} "$o" sDM {Energy In Storage STGE} {Substitution} {STD} "$o" sDM {Energy In Storage MTLE} {Tangent} {STD} "$o" sDM {Energy In Storage MTGE} {Tangent} {STD} "$o" sDM {Instantiate Reservoir Optimization Slots} {Instantiate Reservoir Optimization Slots} {STD} "$o" sDM {Creditable Capacity Available} {None} {STD} "$o" sDM {Live Capacity Available} {None} {STD} "$o" sDM {Worst Case Outflow Available} {None} {STD} "$o" sDM {Reservoir Water Quality} {None} {STD} "$o" sDM {WQ Reservoir Routing} {Predictor-Corrector Salt} {STD} "$o" sDM {Bank Storage Salt} {None} {STD} "$o" sDM {WQ Distribute Inflow} {None} {STD} "$o" sDM {WQ Distribute Outflow} {None} {STD} "$o" sDM {Surface Heat Flux} {None} {STD} "$o" sDM {Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Power} {Plant Efficiency Curve} {STD} "$o" sDM {Power Release} {None} {STD} "$o" sDM {Input Energy Adjustment} {None} {STD} "$o" sDM {Tailwater} {Stage Flow Lookup Table} {STD} "$o" sDM {Future Value} {Cumulative Storage Value Table} {STD} "$o" sDM {Cumul Stor Val Table Automation} {None} {STD} "$o" sDM {Ramping} {None} {STD} "$o" sDM {Regulation} {None} {STD} "$o" sDM {Hole Cuts} {None} {STD} "$o" sDM {Additional Hydropower Release} {None} {STD} "$o" sDM {Load Calculation} {None} {STD} "$o" sDM {Optimization Future Value} {None} {STD} "$o" sDM {Cumul Stor Val Linearization Automation} {None} {STD} "$o" sDM {Cumulative Storage Value STGE} {Line} {STD} "$o" sDM {Cumulative Storage Value MTGE} {Line} {STD} "$o" sDM {Optimization Power} {Independent Linearizations} {STD} "$o" sDM {Power Lambda Computation} {With Reducing Constraints} {STD} "$o" sDM {Power Linearization Automation} {None} {STD} "$o" sDM {Optimization Head Computation} {None} {STD} "$o" sDM {Optimization Tailwater} {Opt Base Value Plus Lookup Table} {STD} "$o" sDM {Tailwater Linearization Automation} {None} {STD} "$o" sDM {Smooth Energy Invisible Category} {No Smoothing} {STD} "$o" sDM {Optimization Reserves} {None} {STD} "$o" sDM {Turbine Capacity STLE} {Line} {STD} "$o" sDM {Turbine Capacity STGE} {Piecewise} {STD} "$o" sDM {Turbine Capacity MTLE} {Line} {STD} "$o" sDM {Turbine Capacity MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 1)} {Instantiate Power Reservoir Optimization Slots (Group 1)} {STD} "$o" sDM {Best Turbine Flow STLE} {Line} {STD} "$o" sDM {Best Turbine Flow STGE} {Piecewise} {STD} "$o" sDM {Best Turbine Flow MTLE} {Line} {STD} "$o" sDM {Best Turbine Flow MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 2)} {Instantiate Power Reservoir Optimization Slots (Group 2)} {STD} "$o" sDM {Power STLE} {Substitution} {STD} "$o" sDM {Power STGE} {Substitution} {STD} "$o" sDM {Power MTLE} {Line} {STD} "$o" sDM {Power MTGE} {Piecewise} {STD} "$o" sDM {Tailwater Elevation STLE} {None} {STD} "$o" sDM {Tailwater Elevation STGE} {None} {STD} "$o" sDM {Tailwater Elevation MTLE} {None} {STD} "$o" sDM {Tailwater Elevation MTGE} {None} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 3)} {Instantiate Power Reservoir Optimization Slots (Group 3)} {STD} "$o" sDM {Instantiate Power Reservoir Optimization Slots (Group 4)} {Instantiate Power Reservoir Optimization Slots (Group 4)} {STD} "$o" sDM {Startup} {None} {STD} "$o" sDM {Head Loss} {None} {STD} "$o" sDM {Cavitation} {None} {STD} "$o" sDM {Avoidance Zones} {None} {STD} "$o" sDM {Frequency Regulation} {None} {STD} "$o" sDM {Power Plant Failure} {None} {STD} "$o" sDM {Power Unit Information} {None} {STD} "$o" sDM {Generate Forecast Hydrology} {None} {STD} "$o" sDM {Incremental Hydrologic Inflows on Subbasin} {None} {STD} "$o" sDM {Disable Reservoir Processes} {None} {STD} "$o" sDM {Pool Elevation STLE} {Substitution} {STD} "$o" sDM {Pool Elevation STGE} {Substitution} {STD} "$o" sDM {Pool Elevation MTLE} {Tangent} {STD} "$o" sDM {Pool Elevation MTGE} {Tangent} {STD} "$o" {SimObjMultiSlot} {Inflow} set s "$o.Inflow" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 5932.3793610239982 5153.666079743999 4785.5470740479986 4881.8243524607988 5029.0719547391982 5414.1810683903987 4508.0419774463981 4717.5866422271984 4542.0221933567991 3808.615866623999 4168.2398183423984 5547.2702473727986 5298.0819973631988 5181.9829263359989 5031.9036393983988 5017.7452161023984 4275.8438353919992 4219.2101422079986 4425.9231223295992 5000.7551081471984 5023.4085854207988 5054.5571166719983 5312.2404206591982 5349.052321228799 5060.2204859903986 4836.5173979135989 5258.4384121343983 5148.0027104255987 5564.2603553279987 4816.6956052991982 4731.7450655231987 4677.9430569983988 4890.3194064383988 4468.3983922175994 4442.9132302847993 5326.3988439551986 5584.0821479423985 5501.9632928255987 5300.9136820223985 5377.3691678207988 5768.1416507903978 5762.4782814719983 5249.9433581567991 4995.091738828799 5400.0226450943983 5878.5773524991982 4669.4480030207988 4711.9232729087989 5298.0819973631988 5439.6662303231988 5329.2305286143983 6006.0031621631979 5388.6959064575985 5020.5769007615991 4641.1311564287989 5315.0721053183979 5349.052321228799 5303.7453666815991 5232.9532502015991 5278.260204748799 5210.2997729279987 5111.1908098559989 4842.1807672319983 5012.081846783999 5029.0719547391982 5201.8047189503986 5164.9928183807988 5156.4977644031987 5196.1413496319983 5501.9632928255987 5179.1512416767991 5046.0620626943983 5266.9334661119983 5275.4285200895993 5295.250312703999 5077.2105939455987 5136.675971788799 5173.4878723583979 5405.6860144127986 5550.1019320319983 5366.0424291839981 5295.250312703999 5213.1314575871984 4414.5963836927986 4522.2004007423984 4666.616318361599 4836.5173979135989 4952.6164689407988 4946.9530996223984 5031.9036393983988 5218.7948269055987 5099.8640712191982 4533.5271393791991 5145.1710257663981 5218.7948269055987 5235.7849348607988 5284.5691981694963 "$o" {SeriesSlot} {Storage} set s "$o.Storage" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 235885561.81761056 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Previous Storage} set s "$o.Previous Storage" "$s" order 500 "$s" cvg 2 9.9999999999999995e-007 "$s" unit 12 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 288.03600000000029 291.37356000000034 "$s" setFSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {m} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 290.36394048000034 "$o" {SeriesSlot} {Flow FROM Pumped Storage} set s "$o.Flow FROM Pumped Storage" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Flow TO Pumped Storage} set s "$o.Flow TO Pumped Storage" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Canal Flow} set s "$o.Canal Flow" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Inflows} set s "$o.Total Inflows" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Sum} set s "$o.Inflow Sum" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Diversion} set s "$o.Diversion" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Diversion Capacity} set s "$o.Diversion Capacity" "$s" order 10 "$s" units 18 {%f} 2 "$s" value NaN {cms} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill} set s "$o.Spill" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release} set s "$o.Turbine Release" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 6294.2686604697583 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Max Iterations} set s "$o.Max Iterations" "$s" order 26 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {No. of Iterations} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 100 "$o" {TableSlot} {Convergence Percentage} set s "$o.Convergence Percentage" "$s" order 6 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Convergence Value} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.0001 "$o" {TableSlot} {Elevation Volume Table} set s "$o.Elevation Volume Table" "$s" order 11 "$s" resize 47 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 10 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 283.46400000000028 0 "$s" row 1 283.76880000000028 8471267.8264627326 "$s" row 2 284.07360000000028 16952729.717698585 "$s" row 3 284.37840000000028 25444385.673707556 "$s" row 4 284.68320000000028 33925847.56494341 "$s" row 5 284.98800000000028 42407309.456179261 "$s" row 6 285.29280000000028 51164011.096289352 "$s" row 7 285.44520000000028 55537264.883957833 "$s" row 8 285.59760000000028 59910518.671626329 "$s" row 9 285.75000000000028 64293966.524067938 "$s" row 10 285.90240000000028 68667220.31173642 "$s" row 11 286.05480000000028 73040474.099404901 "$s" row 12 286.20720000000028 77413727.887073383 "$s" row 13 286.35960000000028 81797175.739514992 "$s" row 14 286.51200000000028 86170429.527183488 "$s" row 15 286.66440000000028 90737370.545541257 "$s" row 16 286.81680000000028 95304311.56389901 "$s" row 17 286.96920000000028 99871252.582256779 "$s" row 18 287.12160000000029 104438193.60061455 "$s" row 19 287.27400000000029 109005134.61897232 "$s" row 20 287.42640000000029 113561881.57255696 "$s" row 21 287.57880000000029 118128822.59091473 "$s" row 22 287.73120000000029 122695763.60927248 "$s" row 23 287.88360000000029 127262704.62763028 "$s" row 24 288.03600000000029 131829645.64598803 "$s" row 25 288.18840000000029 136396586.66434577 "$s" row 26 288.34080000000029 140963527.68270358 "$s" row 27 288.49320000000029 145662991.54311189 "$s" row 28 288.64560000000029 150362455.4035202 "$s" row 29 288.79800000000029 155051725.19915542 "$s" row 30 288.95040000000029 159740994.99479061 "$s" row 31 289.10280000000029 164430264.79042584 "$s" row 32 289.25520000000029 169119534.58606106 "$s" row 33 289.40760000000029 173808804.38169625 "$s" row 34 289.56000000000029 178498074.17733148 "$s" row 35 289.71240000000029 183238314.29683226 "$s" row 36 289.86480000000029 187978554.41633305 "$s" row 37 290.01720000000029 192718794.53583387 "$s" row 38 290.16960000000029 197459034.65533468 "$s" row 39 290.32200000000029 202250245.09870109 "$s" row 40 290.47440000000029 207041455.5420675 "$s" row 41 290.62680000000029 211832665.98543391 "$s" row 42 290.77920000000029 216623876.42880031 "$s" row 43 290.93160000000029 221415086.87216672 "$s" row 44 291.08400000000029 226206297.31553313 "$s" row 45 291.23640000000029 231048478.08276513 "$s" row 46 291.38880000000029 235890658.84999713 "$o" {SeriesSlot} {Energy} set s "$o.Energy" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 2732.9000000000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power} set s "$o.Power" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 2732.9000000000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Operating Head} set s "$o.Operating Head" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 47.259240000000055 56.372760000000056 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 235.01604000000023 246.41556000000028 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow} set s "$o.Hydrologic Inflow" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {cms} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 18.037831279103994 18.179415512063994 18.066148125695996 @ 95 "$o" {SeriesSlot} {Hydrologic Inflow Net} set s "$o.Hydrologic Inflow Net" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setFSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 @ 25 "$s" setDSeries {cms} {04-26-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1571.5849858559995 @ 21 1540.4364546047996 1418.6740142591996 @ 3 "$o" {TableSlot} {Regulated Spill Table} set s "$o.Regulated Spill Table" "$s" order 47 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Pool Elevation} {Max Regulated Spill} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 18 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 283.46400000000028 11355.055483391998 "$s" row 1 291.38880000000029 11355.055483391998 "$o" {TableSlot} {Regulated Spill Index Table} set s "$o.Regulated Spill Index Table" "$s" order 45 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Gate Index} {Pool Elevation} {Regulated Spill} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 0 3 18 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Drift Index} set s "$o.Regulated Spill Drift Index" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Capacity Fraction} set s "$o.Regulated Spill Capacity Fraction" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 29338.950000000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Energy In Storage Table} set s "$o.Energy In Storage Table" "$s" order 15 "$s" resize 27 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Pool Elevation} {Energy In Storage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 35 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 283.46400000000028 0 "$s" row 1 283.76880000000028 950 "$s" row 2 284.07360000000028 1920 "$s" row 3 284.37840000000028 2900 "$s" row 4 284.68320000000028 3890 "$s" row 5 284.98800000000028 4890 "$s" row 6 285.29280000000028 5910 "$s" row 7 285.59760000000028 6940 "$s" row 8 285.90240000000028 7980 "$s" row 9 286.20720000000028 9030 "$s" row 10 286.51200000000028 10100 "$s" row 11 286.81680000000028 11190 "$s" row 12 287.12160000000029 12280 "$s" row 13 287.42640000000029 13400 "$s" row 14 287.73120000000029 14530 "$s" row 15 288.03600000000029 15670 "$s" row 16 288.34080000000029 16830 "$s" row 17 288.64560000000029 18028 "$s" row 18 288.95040000000029 19233 "$s" row 19 289.25520000000029 20448 "$s" row 20 289.56000000000029 21671 "$s" row 21 289.86480000000029 22916 "$s" row 22 290.16960000000029 24170 "$s" row 23 290.47440000000029 25446 "$s" row 24 290.77920000000029 26730 "$s" row 25 291.08400000000029 28024 "$s" row 26 291.38880000000029 29339 "$o" {SeriesSlot} {Power Coefficient} set s "$o.Power Coefficient" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Plant Power Table} set s "$o.Plant Power Table" "$s" order 32 "$s" userDescript {Added info for Operating Heads from 150 to 154 ft 9-5-15. Used when high flows increase CHJ tailwater creating low operating head. Data derived from extrapolating tables from Operating Heads >= 155'. Model not tested at these low heads, as there is likely not actual test data, and we don't expect to be operating under these conditions very ofter.} "$s" resize 108 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Operating Head} {Turbine Release} {Power} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 18 29 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 45.720000000000049 0 0 "$s" row 1 45.720000000000049 4512.7425739806713 1791.01 "$s" row 2 45.720000000000049 6082.7418164275186 2172 "$s" row 3 46.024800000000049 0 0 "$s" row 4 46.024800000000049 4521.325410182706 1805.607 "$s" row 5 46.024800000000049 6113.7346050224623 2200.6414 "$s" row 6 46.329600000000049 0 0 "$s" row 7 46.329600000000049 4529.845949322239 1820.2 "$s" row 8 46.329600000000049 6142.207194270718 2228.4699999999998 "$s" row 9 46.634400000000049 0 0 "$s" row 10 46.634400000000049 4537.7746663679991 1834.8 "$s" row 11 46.634400000000049 6168.258693135359 2255.4699999999998 "$s" row 12 46.939200000000049 0 0 "$s" row 13 46.939200000000049 4545.9865518796787 1849.4000000000001 "$s" row 14 46.939200000000049 6192.0448442726383 2281.6599999999999 "$s" row 15 47.24400000000005 0 0 "$s" row 16 47.24400000000005 4550.6021978741755 1856.0311750000001 "$s" row 17 47.24400000000005 6178.2545399823339 2308.247832 "$s" row 18 47.54880000000005 0 0 "$s" row 19 47.54880000000005 4552.5843771356149 1870.011534 "$s" row 20 47.54880000000005 6182.1905816586232 2331.4629239999999 "$s" row 21 47.85360000000005 0 0 "$s" row 22 47.85360000000005 4566.4029982725106 1888.989861 "$s" row 23 47.85360000000005 6209.346437540351 2352.1890840000001 "$s" row 24 48.15840000000005 0 0 "$s" row 25 48.15840000000005 4567.1392362839024 1902.389664 "$s" row 26 48.15840000000005 6223.5331776829426 2374.141357 "$s" row 27 48.46320000000005 0 0 "$s" row 28 48.46320000000005 4566.9693352043505 1915.3380480000001 "$s" row 29 48.46320000000005 6224.3260493875187 2394.9000160000001 "$s" row 30 48.76800000000005 0 0 "$s" row 31 48.76800000000005 4585.4602360289264 1936.0983100000001 "$s" row 32 48.76800000000005 6231.2353599559665 2417.5453889999999 "$s" row 33 49.072800000000051 0 0 "$s" row 34 49.072800000000051 4588.8299407733748 1950.4949120000001 "$s" row 35 49.072800000000051 6258.4761663774698 2439.6646559999999 "$s" row 36 49.377600000000051 0 0 "$s" row 37 49.377600000000051 4598.6842033873909 1967.459983 "$s" row 38 49.377600000000051 6250.7456672578546 2459.273561 "$s" row 39 49.682400000000051 0 0 "$s" row 40 49.682400000000051 4600.3548973363195 1981.066219 "$s" row 41 49.682400000000051 6265.7819127982066 2480.0803770000002 "$s" row 42 49.987200000000051 0 0 "$s" row 43 49.987200000000051 4608.3402480752629 1997.1908960000001 "$s" row 44 49.987200000000051 6294.410244702719 2503.4594750000001 "$s" row 45 50.292000000000051 0 0 "$s" row 46 50.292000000000051 4627.0010499793916 2017.8391079999999 "$s" row 47 50.292000000000051 6270.510826179071 2518.1578690000001 "$s" row 48 50.596800000000052 0 0 "$s" row 49 50.596800000000052 4629.9176851783659 2031.9182599999999 "$s" row 50 50.596800000000052 6232.7361528253423 2530.8758769999999 "$s" row 51 50.901600000000052 0 0 "$s" row 52 50.901600000000052 4632.3812508318715 2045.751405 "$s" row 53 50.901600000000052 6238.7676411494385 2547.0633809999999 "$s" row 54 51.206400000000052 0 0 "$s" row 55 51.206400000000052 4640.8763048094706 2062.0481650000002 "$s" row 56 51.206400000000052 6219.9935718589431 2558.8741359999999 "$s" row 57 51.511200000000052 0 0 "$s" row 58 51.511200000000052 4653.4206678497276 2080.1712130000001 "$s" row 59 51.511200000000052 6217.8698083645422 2573.9172250000001 "$s" row 60 51.816000000000052 0 0 "$s" row 61 51.816000000000052 4660.046809952255 2095.609152 "$s" row 62 51.816000000000052 6186.976128732671 2584.716586 "$s" row 63 52.120800000000052 0 0 "$s" row 64 52.120800000000052 4657.923046457855 2107.350602 "$s" row 65 52.120800000000052 6195.1030637045742 2599.5164450000002 "$s" row 66 52.425600000000053 0 0 "$s" row 67 52.425600000000053 4655.0913617986544 2118.6483720000001 "$s" row 68 52.425600000000053 6155.0347257768944 2609.8293570000001 "$s" row 69 52.730400000000053 0 0 "$s" row 70 52.730400000000053 4640.8479879628785 2124.2897389999998 "$s" row 71 52.730400000000053 6154.2984877655026 2623.4665049999999 "$s" row 72 53.035200000000053 0 0 "$s" row 73 53.035200000000053 4638.0163033036788 2135.3047839999999 "$s" row 74 53.035200000000053 6106.7828191841254 2631.9403820000002 "$s" row 75 53.340000000000053 0 0 "$s" row 76 53.340000000000053 4641.2161069685744 2148.9613159999999 "$s" row 77 53.340000000000053 6040.2948633861106 2637.7291989999999 "$s" row 78 53.644800000000053 0 0 "$s" row 79 53.644800000000053 4645.6901687301106 2163.2062169999999 "$s" row 80 53.644800000000053 6018.7457431295988 2648.5980460000001 "$s" row 81 53.949600000000054 0 0 "$s" row 82 53.949600000000054 4661.2361175091191 2182.9289490000001 "$s" row 83 53.949600000000054 5975.194433071103 2654.6617070000002 "$s" row 84 54.254400000000054 0 0 "$s" row 85 54.254400000000054 4675.3945408051186 2201.5315529999998 "$s" row 86 54.254400000000054 5953.6736296611825 2663.5755789999998 "$s" row 87 54.559200000000061 0 0 "$s" row 88 54.559200000000061 4678.367809697279 2214.9737540000001 "$s" row 89 54.559200000000061 5909.8391511367672 2667.670102 "$s" row 90 54.864000000000061 0 0 "$s" row 91 54.864000000000061 4685.6169224248315 2230.7275880000002 "$s" row 92 54.864000000000061 5889.8474574428137 2675.3449329999999 "$s" row 93 55.168800000000061 0 0 "$s" row 94 55.168800000000061 4689.9777167999991 2244.7236950000001 "$s" row 95 55.168800000000061 5857.3397175551981 2680.605251 "$s" row 96 55.473600000000062 0 0 "$s" row 97 55.473600000000062 4687.7406859192306 2255.4477790000001 "$s" row 98 55.473600000000062 5824.4638586618858 2685.2736970000001 "$s" row 99 55.778400000000062 0 0 "$s" row 100 55.778400000000062 4691.7899949818866 2269.1674990000001 "$s" row 101 55.778400000000062 5769.6707605063657 2685.070725 "$s" row 102 56.083200000000062 0 0 "$s" row 103 56.083200000000062 4695.6410861183986 2283.2247170000001 "$s" row 104 56.083200000000062 5715.6422172088305 2683.9866659999998 "$s" row 105 56.388000000000062 0 0 "$s" row 106 56.388000000000062 4692.7810846126067 2293.3912690000002 "$s" row 107 56.388000000000062 5662.6613972351988 2682.1429739999999 "$o" {SeriesSlot} {Hydro Capacity} set s "$o.Hydro Capacity" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 2732.9000000000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Best Hydro Capacity} set s "$o.Best Hydro Capacity" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Plant Cap Fraction} set s "$o.Power Plant Cap Fraction" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Minimum Power Elevation} set s "$o.Minimum Power Elevation" "$s" order 28 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Min Power Elev} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 288.03600000000029 "$o" {SeriesSlot} {Plant Power Limit} set s "$o.Plant Power Limit" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Curvature Tolerance} set s "$o.Power Curvature Tolerance" "$s" order 37 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {SeriesSlot} {Tailwater Base Value} set s "$o.Tailwater Base Value" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 235.01604000000023 238.33836000000028 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Stage Flow Tailwater Table} set s "$o.Stage Flow Tailwater Table" "$s" order 54 "$s" resize 228 3 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Downstream Stage} {Tailwater Elevation} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 18 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 0 235.00080000000025 235.00080000000025 "$s" row 1 0 235.30560000000025 235.30560000000025 "$s" row 2 0 235.61040000000025 235.61040000000025 "$s" row 3 0 235.91520000000025 235.91520000000025 "$s" row 4 0 236.22000000000025 236.22000000000025 "$s" row 5 0 236.52480000000025 236.52480000000025 "$s" row 6 0 236.82960000000026 236.82960000000026 "$s" row 7 0 237.13440000000026 237.13440000000026 "$s" row 8 0 237.43920000000026 237.43920000000026 "$s" row 9 0 237.74400000000026 237.74400000000026 "$s" row 10 0 238.04880000000026 238.04880000000026 "$s" row 11 0 238.35360000000026 238.35360000000026 "$s" row 12 707.92116479999981 235.00080000000025 235.50598676712025 "$s" row 13 707.92116479999981 235.30560000000025 235.73411326032024 "$s" row 14 707.92116479999981 235.61040000000025 235.96223975352024 "$s" row 15 707.92116479999981 235.91520000000025 236.19036624672026 "$s" row 16 707.92116479999981 236.22000000000025 236.41849273992025 "$s" row 17 707.92116479999981 236.52480000000025 236.64661923312025 "$s" row 18 707.92116479999981 236.82960000000026 236.87474572632024 "$s" row 19 707.92116479999981 237.13440000000026 237.16488000000027 "$s" row 20 707.92116479999981 237.43920000000026 237.46968000000027 "$s" row 21 707.92116479999981 237.74400000000026 237.77448000000027 "$s" row 22 707.92116479999981 238.04880000000026 238.07928000000027 "$s" row 23 707.92116479999981 238.35360000000026 238.38408000000027 "$s" row 24 1415.8423295999996 235.00080000000025 235.87168739208025 "$s" row 25 1415.8423295999996 235.30560000000025 236.08297359384025 "$s" row 26 1415.8423295999996 235.61040000000025 236.29425979560025 "$s" row 27 1415.8423295999996 235.91520000000025 236.50554602784027 "$s" row 28 1415.8423295999996 236.22000000000025 236.71683222960027 "$s" row 29 1415.8423295999996 236.52480000000025 236.92811843136025 "$s" row 30 1415.8423295999996 236.82960000000026 237.13940463312025 "$s" row 31 1415.8423295999996 237.13440000000026 237.35069083488025 "$s" row 32 1415.8423295999996 237.43920000000026 237.56197703664026 "$s" row 33 1415.8423295999996 237.74400000000026 237.80496000000028 "$s" row 34 1415.8423295999996 238.04880000000026 238.10976000000028 "$s" row 35 1415.8423295999996 238.35360000000026 238.44504000000023 "$s" row 36 2123.7634943999997 235.00080000000025 236.28440317320025 "$s" row 37 2123.7634943999997 235.30560000000025 236.48519718360026 "$s" row 38 2123.7634943999997 235.61040000000025 236.68599116352027 "$s" row 39 2123.7634943999997 235.91520000000025 236.88678517392026 "$s" row 40 2123.7634943999997 236.22000000000025 237.08757918432025 "$s" row 41 2123.7634943999997 236.52480000000025 237.28837319472026 "$s" row 42 2123.7634943999997 236.82960000000026 237.48916720512025 "$s" row 43 2123.7634943999997 237.13440000000026 237.68996121552024 "$s" row 44 2123.7634943999997 237.43920000000026 237.89075519544028 "$s" row 45 2123.7634943999997 237.74400000000026 238.09154920584027 "$s" row 46 2123.7634943999997 238.04880000000026 238.29234321624025 "$s" row 47 2123.7634943999997 238.35360000000026 238.56696000000028 "$s" row 48 2831.6846591999993 235.00080000000025 236.79193181016026 "$s" row 49 2831.6846591999993 235.30560000000025 236.89309139448025 "$s" row 50 2831.6846591999993 235.61040000000025 237.08624480040027 "$s" row 51 2831.6846591999993 235.91520000000025 237.27939820632022 "$s" row 52 2831.6846591999993 236.22000000000025 237.47255161224027 "$s" row 53 2831.6846591999993 236.52480000000025 237.66570504864026 "$s" row 54 2831.6846591999993 236.82960000000026 237.85885845456025 "$s" row 55 2831.6846591999993 237.13440000000026 238.05201186048026 "$s" row 56 2831.6846591999993 237.43920000000026 238.24516529688026 "$s" row 57 2831.6846591999993 237.74400000000026 238.43831870280025 "$s" row 58 2831.6846591999993 238.04880000000026 238.63147210872026 "$s" row 59 2831.6846591999993 238.35360000000026 238.82462554512026 "$s" row 60 3539.6058239999993 235.00080000000025 237.44371643496024 "$s" row 61 3539.6058239999993 235.30560000000025 237.44371643496024 "$s" row 62 3539.6058239999993 235.61040000000025 237.48198468456025 "$s" row 63 3539.6058239999993 235.91520000000025 237.66912578856025 "$s" row 64 3539.6058239999993 236.22000000000025 237.85626689256026 "$s" row 65 3539.6058239999993 236.52480000000025 238.04340799656023 "$s" row 66 3539.6058239999993 236.82960000000026 238.23054907008026 "$s" row 67 3539.6058239999993 237.13440000000026 238.41769017408024 "$s" row 68 3539.6058239999993 237.43920000000026 238.60483127808027 "$s" row 69 3539.6058239999993 237.74400000000026 238.79197238208025 "$s" row 70 3539.6058239999993 238.04880000000026 238.97911345560024 "$s" row 71 3539.6058239999993 238.35360000000026 239.16625455960025 "$s" row 72 4247.5269887999993 235.00080000000025 238.04210817696026 "$s" row 73 4247.5269887999993 235.30560000000025 238.04210817696026 "$s" row 74 4247.5269887999993 235.61040000000025 238.04210817696026 "$s" row 75 4247.5269887999993 235.91520000000025 238.05143295384025 "$s" row 76 4247.5269887999993 236.22000000000025 238.23361645536022 "$s" row 77 4247.5269887999993 236.52480000000025 238.41579998736026 "$s" row 78 4247.5269887999993 236.82960000000026 238.59798348888023 "$s" row 79 4247.5269887999993 237.13440000000026 238.78016699040026 "$s" row 80 4247.5269887999993 237.43920000000026 238.96235052240024 "$s" row 81 4247.5269887999993 237.74400000000026 239.14453402392024 "$s" row 82 4247.5269887999993 238.04880000000026 239.32671755592025 "$s" row 83 4247.5269887999993 238.35360000000026 239.50890105744026 "$s" row 84 4955.4481535999994 235.00080000000025 238.59946292712024 "$s" row 85 4955.4481535999994 235.30560000000025 238.59946292712024 "$s" row 86 4955.4481535999994 235.61040000000025 238.59946292712024 "$s" row 87 4955.4481535999994 235.91520000000025 238.59946292712024 "$s" row 88 4955.4481535999994 236.22000000000025 238.60289302440023 "$s" row 89 4955.4481535999994 236.52480000000025 238.78085827680025 "$s" row 90 4955.4481535999994 236.82960000000026 238.95882352920026 "$s" row 91 4955.4481535999994 237.13440000000026 239.13678878160025 "$s" row 92 4955.4481535999994 237.43920000000026 239.31475403400026 "$s" row 93 4955.4481535999994 237.74400000000026 239.49271928640024 "$s" row 94 4955.4481535999994 238.04880000000026 239.67068453880023 "$s" row 95 4955.4481535999994 238.35360000000026 239.84864979120027 "$s" row 96 5663.3693183999985 235.00080000000025 239.12393880984024 "$s" row 97 5663.3693183999985 235.30560000000025 239.12393880984024 "$s" row 98 5663.3693183999985 235.61040000000025 239.12393880984024 "$s" row 99 5663.3693183999985 235.91520000000025 239.12393880984024 "$s" row 100 5663.3693183999985 236.22000000000025 239.12393880984024 "$s" row 101 5663.3693183999985 236.52480000000025 239.13798103728027 "$s" row 102 5663.3693183999985 236.82960000000026 239.31227521752027 "$s" row 103 5663.3693183999985 237.13440000000026 239.48656936728023 "$s" row 104 5663.3693183999985 237.43920000000026 239.66086351704024 "$s" row 105 5663.3693183999985 237.74400000000026 239.83515766680026 "$s" row 106 5663.3693183999985 238.04880000000026 240.00945181656024 "$s" row 107 5663.3693183999985 238.35360000000026 240.18374599680024 "$s" row 108 6371.2904831999986 235.00080000000025 239.62126661376027 "$s" row 109 6371.2904831999986 235.30560000000025 239.62126661376027 "$s" row 110 6371.2904831999986 235.61040000000025 239.62126661376027 "$s" row 111 6371.2904831999986 235.91520000000025 239.62126661376027 "$s" row 112 6371.2904831999986 236.22000000000025 239.62126661376027 "$s" row 113 6371.2904831999986 236.52480000000025 239.62126661376027 "$s" row 114 6371.2904831999986 236.82960000000026 239.65820925768026 "$s" row 115 6371.2904831999986 237.13440000000026 239.82925369080024 "$s" row 116 6371.2904831999986 237.43920000000026 240.00029812392026 "$s" row 117 6371.2904831999986 237.74400000000026 240.17134255704025 "$s" row 118 6371.2904831999986 238.04880000000026 240.34238702064025 "$s" row 119 6371.2904831999986 238.35360000000026 240.51343145376026 "$s" row 120 7079.2116479999986 235.00080000000025 240.09565980264026 "$s" row 121 7079.2116479999986 235.30560000000025 240.09565980264026 "$s" row 122 7079.2116479999986 235.61040000000025 240.09565980264026 "$s" row 123 7079.2116479999986 235.91520000000025 240.09565980264026 "$s" row 124 7079.2116479999986 236.22000000000025 240.09565980264026 "$s" row 125 7079.2116479999986 236.52480000000025 240.09565980264026 "$s" row 126 7079.2116479999986 236.82960000000026 240.09565980264026 "$s" row 127 7079.2116479999986 237.13440000000026 240.16492240224025 "$s" row 128 7079.2116479999986 237.43920000000026 240.33305163672026 "$s" row 129 7079.2116479999986 237.74400000000026 240.50118090168024 "$s" row 130 7079.2116479999986 238.04880000000026 240.66931013616025 "$s" row 131 7079.2116479999986 238.35360000000026 240.83743937064025 "$s" row 132 7787.1328127999977 235.00080000000025 240.55032673176026 "$s" row 133 7787.1328127999977 235.30560000000025 240.55032673176026 "$s" row 134 7787.1328127999977 235.61040000000025 240.55032673176026 "$s" row 135 7787.1328127999977 235.91520000000025 240.55032673176026 "$s" row 136 7787.1328127999977 236.22000000000025 240.55032673176026 "$s" row 137 7787.1328127999977 236.52480000000025 240.55032673176026 "$s" row 138 7787.1328127999977 236.82960000000026 240.55032673176026 "$s" row 139 7787.1328127999977 237.13440000000026 240.55032673176026 "$s" row 140 7787.1328127999977 237.43920000000026 240.65929626744025 "$s" row 141 7787.1328127999977 237.74400000000026 240.82478236776026 "$s" row 142 7787.1328127999977 238.04880000000026 240.99026843760026 "$s" row 143 7787.1328127999977 238.35360000000026 241.15575453792027 "$s" row 144 8495.0539775999987 235.00080000000025 240.98777937984025 "$s" row 145 8495.0539775999987 235.30560000000025 240.98777937984025 "$s" row 146 8495.0539775999987 235.61040000000025 240.98777937984025 "$s" row 147 8495.0539775999987 235.91520000000025 240.98777937984025 "$s" row 148 8495.0539775999987 236.22000000000025 240.98777937984025 "$s" row 149 8495.0539775999987 236.52480000000025 240.98777937984025 "$s" row 150 8495.0539775999987 236.82960000000026 240.98777937984025 "$s" row 151 8495.0539775999987 237.13440000000026 240.98777937984025 "$s" row 152 8495.0539775999987 237.43920000000026 240.98777937984025 "$s" row 153 8495.0539775999987 237.74400000000026 241.14235485936027 "$s" row 154 8495.0539775999987 238.04880000000026 241.30542334704026 "$s" row 155 8495.0539775999987 238.35360000000026 241.46849183472025 "$s" row 156 9202.9751423999987 235.00080000000025 241.41002939640026 "$s" row 157 9202.9751423999987 235.30560000000025 241.41002939640026 "$s" row 158 9202.9751423999987 235.61040000000025 241.41002939640026 "$s" row 159 9202.9751423999987 235.91520000000025 241.41002939640026 "$s" row 160 9202.9751423999987 236.22000000000025 241.41002939640026 "$s" row 161 9202.9751423999987 236.52480000000025 241.41002939640026 "$s" row 162 9202.9751423999987 236.82960000000026 241.41002939640026 "$s" row 163 9202.9751423999987 237.13440000000026 241.41002939640026 "$s" row 164 9202.9751423999987 237.43920000000026 241.41002939640026 "$s" row 165 9202.9751423999987 237.74400000000026 241.45415014128028 "$s" row 166 9202.9751423999987 238.04880000000026 241.61499112008025 "$s" row 167 9202.9751423999987 238.35360000000026 241.77583209888027 "$s" row 168 9910.8963071999988 235.00080000000025 241.81871840376027 "$s" row 169 9910.8963071999988 235.30560000000025 241.81871840376027 "$s" row 170 9910.8963071999988 235.61040000000025 241.81871840376027 "$s" row 171 9910.8963071999988 235.91520000000025 241.81871840376027 "$s" row 172 9910.8963071999988 236.22000000000025 241.81871840376027 "$s" row 173 9910.8963071999988 236.52480000000025 241.81871840376027 "$s" row 174 9910.8963071999988 236.82960000000026 241.81871840376027 "$s" row 175 9910.8963071999988 237.13440000000026 241.81871840376027 "$s" row 176 9910.8963071999988 237.43920000000026 241.81871840376027 "$s" row 177 9910.8963071999988 237.74400000000026 241.81871840376027 "$s" row 178 9910.8963071999988 238.04880000000026 241.91921090280024 "$s" row 179 9910.8963071999988 238.35360000000026 242.07798673968026 "$s" row 180 10618.817471999997 235.00080000000025 242.21520727296027 "$s" row 181 10618.817471999997 235.30560000000025 242.21520727296027 "$s" row 182 10618.817471999997 235.61040000000025 242.21520727296027 "$s" row 183 10618.817471999997 235.91520000000025 242.21520727296027 "$s" row 184 10618.817471999997 236.22000000000025 242.21520727296027 "$s" row 185 10618.817471999997 236.52480000000025 242.21520727296027 "$s" row 186 10618.817471999997 236.82960000000026 242.21520727296027 "$s" row 187 10618.817471999997 237.13440000000026 242.21520727296027 "$s" row 188 10618.817471999997 237.43920000000026 242.21520727296027 "$s" row 189 10618.817471999997 237.74400000000026 242.21520727296027 "$s" row 190 10618.817471999997 238.04880000000026 242.21832726672028 "$s" row 191 10618.817471999997 238.35360000000026 242.37517823064027 "$s" row 192 11326.738636799997 235.00080000000025 242.60063961360026 "$s" row 193 11326.738636799997 235.30560000000025 242.60063961360026 "$s" row 194 11326.738636799997 235.61040000000025 242.60063961360026 "$s" row 195 11326.738636799997 235.91520000000025 242.60063961360026 "$s" row 196 11326.738636799997 236.22000000000025 242.60063961360026 "$s" row 197 11326.738636799997 236.52480000000025 242.60063961360026 "$s" row 198 11326.738636799997 236.82960000000026 242.60063961360026 "$s" row 199 11326.738636799997 237.13440000000026 242.60063961360026 "$s" row 200 11326.738636799997 237.43920000000026 242.60063961360026 "$s" row 201 11326.738636799997 237.74400000000026 242.60063961360026 "$s" row 202 11326.738636799997 238.04880000000026 242.60063961360026 "$s" row 203 11326.738636799997 238.35360000000026 242.66762919768024 "$s" row 204 12034.659801599997 235.00080000000025 242.97598773768027 "$s" row 205 12034.659801599997 235.30560000000025 242.97598773768027 "$s" row 206 12034.659801599997 235.61040000000025 242.97598773768027 "$s" row 207 12034.659801599997 235.91520000000025 242.97598773768027 "$s" row 208 12034.659801599997 236.22000000000025 242.97598773768027 "$s" row 209 12034.659801599997 236.52480000000025 242.97598773768027 "$s" row 210 12034.659801599997 236.82960000000026 242.97598773768027 "$s" row 211 12034.659801599997 237.13440000000026 242.97598773768027 "$s" row 212 12034.659801599997 237.43920000000026 242.97598773768027 "$s" row 213 12034.659801599997 237.74400000000026 242.97598773768027 "$s" row 214 12034.659801599997 238.04880000000026 242.97598773768027 "$s" row 215 12034.659801599997 238.35360000000026 242.97598773768027 "$s" row 216 14158.423295999997 235.00080000000025 244.04934157776023 "$s" row 217 14158.423295999997 235.30560000000025 244.04934157776023 "$s" row 218 14158.423295999997 235.61040000000025 244.04934157776023 "$s" row 219 14158.423295999997 235.91520000000025 244.04934157776023 "$s" row 220 14158.423295999997 236.22000000000025 244.04934157776023 "$s" row 221 14158.423295999997 236.52480000000025 244.04934157776023 "$s" row 222 14158.423295999997 236.82960000000026 244.04934157776023 "$s" row 223 14158.423295999997 237.13440000000026 244.04934157776023 "$s" row 224 14158.423295999997 237.43920000000026 244.04934157776023 "$s" row 225 14158.423295999997 237.74400000000026 244.04934157776023 "$s" row 226 14158.423295999997 238.04880000000026 244.04934157776023 "$s" row 227 14158.423295999997 238.35360000000026 244.04934157776023 "$o" {TableSlot} {Tail Water Reference Elevation} set s "$o.Tail Water Reference Elevation" "$s" order 56 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 3 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 235.00080000000025 "$o" {SeriesSlot} {Spill Cost} set s "$o.Spill Cost" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Future Value of Used Energy} set s "$o.Future Value of Used Energy" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Marginal Storage Value Table} set s "$o.Marginal Storage Value Table" "$s" order 25 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Marginal Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 61 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 NaN "$s" row 1 235890658.84999713 0 "$o" {SeriesSlot} {Cumulative Storage Value} set s "$o.Cumulative Storage Value" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 59 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Cumul Stor Val Table} set s "$o.Cumul Stor Val Table" "$s" order 7 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Anticipated Storage} {Cumulative Storage Value} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 10 59 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 305821943.19360048 0 "$o" {SeriesSlot} {Anticipated Storage} set s "$o.Anticipated Storage" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 294914293.88636202 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Pool Elevation LP Param} set s "$o.Pool Elevation LP Param" "$s" order 34 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 207041455.5420675 197459034.65533465 0 "$s" row 1 NaN 235890658.84999713 197459034.65533465 "$s" row 2 NaN NaN 207041455.5420675 "$s" row 3 NaN NaN 235890658.84999713 "$o" {TableSlot} {Energy In Storage LP Param} set s "$o.Energy In Storage LP Param" "$s" order 14 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 290.47440000000029 289.56000000000029 283.46400000000028 "$s" row 1 NaN 291.38880000000029 289.56000000000029 "$s" row 2 NaN NaN 290.47440000000029 "$s" row 3 NaN NaN 291.38880000000029 "$o" {SeriesSlot} {Spill Lower Bound} set s "$o.Spill Lower Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Lower Bound LP Param} set s "$o.Spill Lower Bound LP Param" "$s" order 52 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Line} {Piecewise} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 12 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Spill Upper Bound} set s "$o.Spill Upper Bound" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Upper Bound LP Param} set s "$o.Spill Upper Bound LP Param" "$s" order 53 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {Line} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 12 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Spill Bounds Linearization Table} set s "$o.Spill Bounds Linearization Table" "$s" order 50 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Storage} {Spill Lower Bound} {Spill Upper Bound} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {SeriesSlot} {Regulated Spill Capacity} set s "$o.Regulated Spill Capacity" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Regulated Spill Capacity Table} set s "$o.Regulated Spill Capacity Table" "$s" order 43 "$s" sourceSlotName {Chief Joseph.Regulated Spill Table} "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Storage} {Regulated Spill Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 12 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 11355.055483391998 "$s" row 1 235890658.84999713 11355.055483391998 "$o" {TableSlot} {Regulated Spill or Bypass LP Param} set s "$o.Regulated Spill or Bypass LP Param" "$s" order 46 "$s" resize 3 3 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 12 12 12 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 207041455.54206753 187978554.41633305 187978554.41633302 "$s" row 1 NaN 226206297.31553316 207041455.54206753 "$s" row 2 NaN NaN 226206297.31553316 "$o" {TableSlot} {Max Turbine Q} set s "$o.Max Turbine Q" "$s" order 27 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Turbine Capacity} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Power LP Param} set s "$o.Power LP Param" "$s" order 38 "$s" resize 3 4 "$s" setRowLabels {} {} {} "$s" setColumnLabels {Operating Head} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row 0 51.816000000000052 3454.6552842239994 0 0 "$s" row 1 NaN NaN 4813.8639206399985 4660.046809952255 "$s" row 2 NaN NaN NaN 6186.976128732671 "$o" {SeriesSlot} {Turbine Capacity} set s "$o.Turbine Capacity" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Turbine Capacity LP Param} set s "$o.Turbine Capacity LP Param" "$s" order 62 "$s" resize 6 3 "$s" setRowLabels {} {} {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 51.816000000000052 50.596800000000052 47.54880000000005 "$s" row 1 NaN 53.035200000000053 50.596800000000052 "$s" row 2 NaN NaN 51.816000000000052 "$s" row 3 NaN NaN 53.340000000000053 "$s" row 4 NaN NaN 54.559200000000061 "$s" row 5 NaN NaN 56.388000000000062 "$o" {TableSlot} {Tailwater Table} set s "$o.Tailwater Table" "$s" order 59 "$s" resize 21 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Outflow} {Tailwater Elevation} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 566.33693183999992 0 "$s" row 2 1132.6738636799998 0.030480000000000035 "$s" row 3 1699.0107955199996 0.12192000000000014 "$s" row 4 2265.3477273599997 0.33528000000000036 "$s" row 5 2831.6846591999993 0.57912000000000063 "$s" row 6 3398.0215910399993 0.88392000000000093 "$s" row 7 3964.3585228799993 1.2192000000000014 "$s" row 8 4530.6954547199994 1.5544800000000016 "$s" row 9 5097.0323865599985 1.9507200000000022 "$s" row 10 5663.3693183999985 2.2860000000000023 "$s" row 11 6229.7062502399986 2.6517600000000026 "$s" row 12 6796.0431820799986 2.9565600000000027 "$s" row 13 7362.3801139199977 3.2918400000000037 "$s" row 14 8495.0539775999987 4.0233600000000038 "$s" row 15 9910.8963071999988 4.7853600000000052 "$s" row 16 11326.738636799997 5.638800000000006 "$s" row 17 12742.580966399997 6.3703200000000066 "$s" row 18 14158.423295999997 7.0104000000000077 "$s" row 19 15574.265625599995 7.6809600000000078 "$s" row 20 16480.404716543995 8.0772000000000084 "$o" {TableSlot} {Tailwater Table Lookup LP Param} set s "$o.Tailwater Table Lookup LP Param" "$s" order 60 "$s" resize 4 3 "$s" setRowLabels {} {} {} {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row 0 2831.6846591999993 0 0 "$s" row 1 NaN 8495.0539775999987 1699.0107955199996 "$s" row 2 NaN NaN 2831.6846591999993 "$s" row 3 NaN NaN 8495.0539775999987 "$o" {SeriesSlot} {Best Turbine Flow} set s "$o.Best Turbine Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Best Turbine Flow LP Param} set s "$o.Best Turbine Flow LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 3 3 3 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Best Turbine Q} set s "$o.Best Turbine Q" "$s" order 500 "$s" resize 1 2 "$s" setRowLabels {} "$s" setColumnLabels {Operating Head} {Best Turbine Flow} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 3 19 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Tailwater Elevation LP Param} set s "$o.Tailwater Elevation LP Param" "$s" order 500 "$s" resize 1 4 "$s" setRowLabels {} "$s" setColumnLabels {Tailwater Base Value} {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN "$s" setUnits 3 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} "$s" row -1 NaN "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {Anticipated Storage} "$o" hids {Best Hydro Capacity} "$o" hids {Canal Flow} "$o" hids {Convergence Percentage} "$o" hids {Cumul Stor Val Table} "$o" hids {Cumulative Storage Value} "$o" hids {Diversion} "$o" hids {Diversion Capacity} "$o" hids {Flow FROM Pumped Storage} "$o" hids {Flow TO Pumped Storage} "$o" hids {Future Value of Used Energy} "$o" hids {Inflow Sum} "$o" hids {Marginal Storage Value Table} "$o" hids {Max Iterations} "$o" hids {Max Turbine Q} "$o" hids {Power Curvature Tolerance} "$o" hids {Regulated Spill Capacity} "$o" hids {Regulated Spill Capacity Fraction} "$o" hids {Regulated Spill Capacity Table} "$o" hids {Regulated Spill Drift Index} "$o" hids {Regulated Spill Index Table} "$o" hids {Return Flow} "$o" hids {Spill Bounds Linearization Table} "$o" hids {Spill Cost} "$o" hids {Spill Lower Bound LP Param} "$o" hids {Spill Upper Bound LP Param} "$o" hids {Total Inflows} set obj {GCL to CHJ} set o "$ws.GCL to CHJ" $ws SimObj $obj {Reach} 581 1482 {} 1138 1833 840 1024 "$o" geospatialCoords 0 0 840 1024 "$o" objAttributes { \ } "$o" objOrd wsList 5043 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 3 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 1.75 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {CHJ to WEL} set o "$ws.CHJ to WEL" $ws SimObj $obj {Reach} 346 1448 {} 884 1787 586 978 "$o" geospatialCoords 0 0 586 978 "$o" objAttributes { \ } "$o" objOrd wsList 5044 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 169 "$s" setDSeries {cms} {04-23-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 5932.3793610239982 5153.666079743999 4785.5470740479986 4881.8243524607988 5029.0719547391982 5414.1810683903987 4508.0419774463981 4717.5866422271984 4542.0221933567991 3808.615866623999 4168.2398183423984 5547.2702473727986 5298.0819973631988 5181.9829263359989 5031.9036393983988 5017.7452161023984 4275.8438353919992 4219.2101422079986 4425.9231223295992 5000.7551081471984 5023.4085854207988 5054.5571166719983 5312.2404206591982 5349.052321228799 5060.2204859903986 4836.5173979135989 5258.4384121343983 5148.0027104255987 5564.2603553279987 4816.6956052991982 4731.7450655231987 4677.9430569983988 4890.3194064383988 4468.3983922175994 4442.9132302847993 5326.3988439551986 5584.0821479423985 5501.9632928255987 5300.9136820223985 5377.3691678207988 5768.1416507903978 5762.4782814719983 5249.9433581567991 4995.091738828799 5400.0226450943983 5878.5773524991982 4669.4480030207988 4711.9232729087989 5298.0819973631988 5439.6662303231988 5329.2305286143983 6006.0031621631979 5388.6959064575985 5020.5769007615991 4641.1311564287989 5315.0721053183979 5349.052321228799 5303.7453666815991 5232.9532502015991 5278.260204748799 5210.2997729279987 5111.1908098559989 4842.1807672319983 5012.081846783999 5029.0719547391982 5201.8047189503986 5164.9928183807988 5156.4977644031987 5196.1413496319983 5501.9632928255987 5179.1512416767991 5046.0620626943983 5266.9334661119983 5275.4285200895993 5295.250312703999 5077.2105939455987 5136.675971788799 5173.4878723583979 5405.6860144127986 5550.1019320319983 5366.0424291839981 5295.250312703999 5213.1314575871984 4414.5963836927986 4522.2004007423984 4666.616318361599 4836.5173979135989 4952.6164689407988 4946.9530996223984 5031.9036393983988 5218.7948269055987 5099.8640712191982 4533.5271393791991 5145.1710257663981 5218.7948269055987 5235.7849348607988 5284.5691981694963 NaN @ 72 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 3 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 1.1699999999999999 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {Chief Joseph Constraints} set o "$ws.Chief Joseph Constraints" $ws SimObj $obj {DataObj} 454 1564 {} 1553 2562 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5045 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 0 "$s" units 3 {%f} 2 "$s" value 289.56000000000029 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 1 "$s" units 3 {%f} 2 "$s" value 291.38880000000029 {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 250 @ 9 0 @ 8 250 @ 16 0 @ 8 250 @ 16 0 @ 8 250 @ 16 0 @ 8 250 @ 16 0 @ 8 250 @ 8 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 2165 @ 121 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 289.56000000000029 @ 121 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 291.38880000000029 @ 121 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 234.69600000000025 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 249.93600000000026 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {CJAD} set s "$o.CJAD" "$s" order 15 "$s" computedByExpr 5 {"CJADCalcPostRun"( @"t" )} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax -101940647.73120016 152910971.59680024 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {CJAD Sunday Max} set s "$o.CJAD Sunday Max" "$s" order 16 "$s" units 10 {%f} 2 "$s" value 87057313.162444934 {m3} "$o" {ScalarSlot} {CJAD Holiday Max} set s "$o.CJAD Holiday Max" "$s" order 17 "$s" units 10 {%f} 2 "$s" value 87057313.162444934 {m3} "$o" {ScalarSlot} {CJAD Saturday Max} set s "$o.CJAD Saturday Max" "$s" order 18 "$s" units 10 {%f} 2 "$s" value 94295099.151360139 {m3} "$o" {SeriesSlot} {Initial Request As Flow} set s "$o.Initial Request As Flow" "$s" order 19 "$s" computedByExpr 2 {$ "Chief Joseph Constraints.Initial Uncoordinated Request" [@"t"] / ( $ "Chief Joseph Constraints.Power Coefficient Approximation" [@"t"] * 1.00000000 "hr" )} "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 7079.2116479999986 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD Allowable} set s "$o.CJAD Allowable" "$s" order 20 "$s" computedByExpr 2 {"AllowableCJAD"( @"t" )} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax 0 203881295.46240032 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD Estimate Prerun} set s "$o.CJAD Estimate Prerun" "$s" order 21 "$s" computedByExpr 2 {"CJADCalcPreRun"( @"t" )} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Revised Request As Flow} set s "$o.Revised Request As Flow" "$s" order 22 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 8495.0539775999969 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {CJAD Input Prior to Run Period} set s "$o.CJAD Input Prior to Run Period" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Request} set s "$o.Request" "$s" order 24 "$s" computedByExpr 5 {IF ( "IsCJADPeriod"( @"t" ) OR "IsCJADIIPeriod"( @"t" ) )\ THEN\ "ChiefJosephRevisedRequest"( @"t" )\ ELSE\ $ "Chief Joseph Constraints.Initial Uncoordinated Request" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 4000 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Delivered Energy} set s "$o.Delivered Energy" "$s" order 25 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 3000 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Initial Uncoordinated Request} set s "$o.Initial Uncoordinated Request" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1551 1721 1564 1514 1588 1684 1791 1723 1694 1654 1478 1304 1368 1398 1528 1520 1620 1646 1619 1548 1355 1667 1675 1729 1519 @ 2 1520 @ 2 1521 @ 2 1522 @ 2 1523 1514 @ 2 1808 1848 1827 1814 1799 1794 1795 1796 @ 2 1793 1792 @ 2 1794 1828 1830 1831 1828 @ 6 1851 1852 1847 @ 2 1832 1823 @ 3 1824 2111 2105 2086 2081 2075 2071 2066 2062 2058 2053 1967 1753 1781 1787 @ 2 1806 1807 1808 @ 2 1789 1779 @ 2 1785 1783 1785 1784 @ 3 1779 1782 1781 1782 1781 @ 2 1778 1780 1779 1775 @ 3 1794 1544 1600 1536 1527 1599 1609 1611 1518 1513 1427 1438 1435 @ 2 1441 "$o" {SeriesSlot} {Bias} set s "$o.Bias" "$s" order 27 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange} set s "$o.Accumulated Exchange" "$s" order 28 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax -36920.949999999997 36920.949999999997 "$s" setFSeries {MWH} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {MWH} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 0 "$o" {ScalarSlot} {Minimum Daily Relsease} set s "$o.Minimum Daily Relsease" "$s" order 33 "$s" units 19 {%f} 2 "$s" value 1019.4064773119998 {cms} "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Cold Weather Min Power} set s "$o.Cold Weather Min Power" "$s" order 36 "$s" units 29 {%f} 2 "$s" value 250 {MW} "$o" {ScalarSlot} {Bias Ramp Max} set s "$o.Bias Ramp Max" "$s" order 37 "$s" units 29 {%f} 2 "$s" value 1800 {MW} "$o" {SeriesSlot} {Bias Target Max} set s "$o.Bias Target Max" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Target Min} set s "$o.Bias Target Min" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 40 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Chief Joseph", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Scheduled Outflow} set s "$o.Scheduled Outflow" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Negative Limit} set s "$o.Bias Negative Limit" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Bias Positive Limit} set s "$o.Bias Positive Limit" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Temperature Forecast} set s "$o.Temperature Forecast" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 53 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 2 "$s" units 2 {%f} 2 "$s" value 0.06096000000000007 {m} "$o" {SeriesSlot} {Pool Elevation Margin Adjust} set s "$o.Pool Elevation Margin Adjust" "$s" order 3 "$s" computedByExpr 2 {$ "Chief Joseph Constraints.Discharge Estimate" [@"t"] * 1.00000000 "ft" / 1000.00000000 "kcfs"} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Accumulated Exchange Max} set s "$o.Accumulated Exchange Max" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accumulated Exchange Max Default} set s "$o.Accumulated Exchange Max Default" "$s" order 46 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Min Default} set s "$o.Accumulated Exchange Min Default" "$s" order 47 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accumulated Exchange Target Max} set s "$o.Accumulated Exchange Target Max" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange Target Min} set s "$o.Accumulated Exchange Target Min" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 50 "$s" units 15 {%f} 2 "$s" value 168.48523722239997 {cms} "$o" {ScalarSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 51 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 12130.937080012798 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 52 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 53 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Smoothed Release} set s "$o.Smoothed Release" "$s" order 56 "$s" computedByExpr 2 {$ "Chief Joseph Constraints.Smoothed Request" [@"t"] / ( $ "Chief Joseph Constraints.Power Coeff Line Approx" [@"t"] * 1.00000000 "hr" )} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Smoothed Storage} set s "$o.Smoothed Storage" "$s" order 57 "$s" computedByExpr 4 {IF ( @"t" == @"Start Timestep" )\ THEN\ "ElevationToStorage"( % "Chief Joseph", $ "Chief Joseph.Pool Elevation" [@"Start Timestep - 1"] ) + "FlowToVolume"( "GrandCouleeLagged"( $ "Grand Coulee.Outflow", @"t" ) - $ "Chief Joseph Constraints.Smoothed Release" [@"t"], @"t" )\ ELSE\ IF ( @"t" == @"Start Timestep" + 1.00000000 "hr" )\ THEN\ $ "Chief Joseph Constraints.Tailwater Corrected Storage" [@"t - 1"] + "FlowToVolume"( 0.75000000 * $ "Grand Coulee.Outflow" [@"t - 2"] + 0.25000000 * $ "Grand Coulee Constraints.Smoothed Release" [@"t - 1"] - $ "Chief Joseph Constraints.Smoothed Release" [@"t"], @"t" )\ ELSE\ $ "Chief Joseph Constraints.Tailwater Corrected Storage" [@"t - 1"] + "FlowToVolume"( "GrandCouleeLagged"( $ "Grand Coulee Constraints.Smoothed Release", @"t" ) - $ "Chief Joseph Constraints.Smoothed Release" [@"t"], @"t" )\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Corrected Storage} set s "$o.Elevation Corrected Storage" "$s" order 58 "$s" computedByExpr 4 {IF ( $ "Chief Joseph Constraints.Smoothed Storage" [@"t"] > "TableInterpolation"( $ "Chief Joseph.Elevation Volume Table", 0.00000000, 1.00000000, $ "Chief Joseph Constraints.License Max Pool Elevation" [] - 1.25000000 * ( $ "Chief Joseph Constraints.Pool Elevation Margin" [] + $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [@"t"] ), @"t" ) )\ THEN\ "TableInterpolation"( $ "Chief Joseph.Elevation Volume Table", 0.00000000, 1.00000000, $ "Chief Joseph Constraints.License Max Pool Elevation" [] - 1.25000000 * ( $ "Chief Joseph Constraints.Pool Elevation Margin" [] + $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [@"t"] ), @"t" )\ ELSE\ IF ( $ "Chief Joseph Constraints.Smoothed Storage" [@"t"] < "TableInterpolation"( $ "Chief Joseph.Elevation Volume Table", 0.00000000, 1.00000000, $ "Chief Joseph Constraints.License Min Pool Elevation" [] + 1.25000000 * ( $ "Chief Joseph Constraints.Pool Elevation Margin" [] + $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [@"t"] ), @"t" ) )\ THEN\ "TableInterpolation"( $ "Chief Joseph.Elevation Volume Table", 0.00000000, 1.00000000, $ "Chief Joseph Constraints.License Min Pool Elevation" [] + 1.25000000 * ( $ "Chief Joseph Constraints.Pool Elevation Margin" [] + $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [@"t"] ), @"t" )\ ELSE\ $ "Chief Joseph Constraints.Smoothed Storage" [@"t"]\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Corrected Release} set s "$o.Elevation Corrected Release" "$s" order 59 "$s" computedByExpr 4 {IF ( @"t" == @"Start Timestep" )\ THEN\ "VolumeToFlow"( $ "Chief Joseph.Storage" [@"t - 1"] - $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"], @"t" ) + "GrandCouleeLagged"( $ "Grand Coulee.Outflow", @"t" )\ ELSE\ IF ( @"t" == @"Start Timestep" + 1.00000000 "hr" )\ THEN\ "VolumeToFlow"( $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t - 1"] - $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"], @"t" ) + ( 0.75000000 * $ "Grand Coulee.Outflow" [@"t - 2"] + 0.25000000 * $ "Grand Coulee Constraints.Elevation Corrected Release" [@"t - 1"] )\ ELSE\ "VolumeToFlow"( $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t - 1"] - $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"], @"t" ) + "GrandCouleeLagged"( $ "Grand Coulee Constraints.Elevation Corrected Release", @"t" )\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Tailwater Corrected Release} set s "$o.Tailwater Corrected Release" "$s" order 60 "$s" computedByExpr 4 {$ "Chief Joseph Constraints.Elevation Corrected Release" [@"t"] - ( $ "Grand Coulee Constraints.Tailwater Corrected Release" [@"t"] - $ "Grand Coulee Constraints.Elevation Corrected Release" [@"t"] ) * ( $ "Grand Coulee Constraints.Power Coeff Line Approx" [@"t"] / $ "Chief Joseph Constraints.Power Coeff Line Approx" [@"t"] )} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Tailwater Corrected Storage} set s "$o.Tailwater Corrected Storage" "$s" order 62 "$s" computedByExpr 4 {$ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"] + "FlowToVolume"( $ "Chief Joseph Constraints.Tailwater Corrected Release" [@"t"] - $ "Chief Joseph Constraints.Elevation Corrected Release" [@"t"], @"t" )} "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Scaled Request} set s "$o.Scaled Request" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Smoothed Request} set s "$o.Smoothed Request" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Adjusted Request} set s "$o.Adjusted Request" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Request Adjustment} set s "$o.Request Adjustment" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Discharge Estimate Initial} set s "$o.Discharge Estimate Initial" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-25-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 193 "$s" setDSeries {cms} {04-25-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 5238.6166195199985 @ 11 5181.9829263359989 @ 24 5097.0323865599985 @ 158 "$o" {SeriesSlot} {Discharge Estimate Adjustment} set s "$o.Discharge Estimate Adjustment" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Discharge Estimate} set s "$o.Discharge Estimate" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange Min} set s "$o.Accumulated Exchange Min" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Actual} set s "$o.Bias Actual" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 02:00:00} {04-27-2017 13:00:00} 1 HOUR -1 1 @ 36 "$s" setDSeries {MW} {04-26-2017 02:00:00} {04-27-2017 13:00:00} 1 HOUR -1 0 @ 36 "$o" {SeriesSlot} {Bias Scheduled} set s "$o.Bias Scheduled" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 9999 @ 169 "$o" {SeriesSlot} {Bias Scheduled for Plotting} set s "$o.Bias Scheduled for Plotting" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Baseline} set s "$o.Bias Baseline" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Discharge Estimate Minimum} set s "$o.Discharge Estimate Minimum" "$s" order 25 "$s" units 15 {%f} 2 "$s" value 283.1684659199999 {cms} "$o" {ScalarSlot} {Discharge Estimate Ramp Max} set s "$o.Discharge Estimate Ramp Max" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 14158.423295999995 {cms} "$o" {SeriesSlot} {Spill Exchange Energy} set s "$o.Spill Exchange Energy" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {ScalarSlot} {Spill Exchange Energy Default} set s "$o.Spill Exchange Energy Default" "$s" order 22 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Outflow Initial Adjustment} set s "$o.Outflow Initial Adjustment" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Initial} set s "$o.Outflow Initial" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Flow} set s "$o.Bias Flow" "$s" order 15 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax -2831.6846591999993 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Flow Combined} set s "$o.Bias Flow Combined" "$s" order 15 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax -2831.6846591999993 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" SlotGroup {Special Operations} set sg "$o.Special Operations" "$sg" SlotGroup Order 53 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Spill} "$o" SlotGroup {Federal Request Adjustment} set sg "$o.Federal Request Adjustment" "$sg" SlotGroup Order 38 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Scaled Request} "$sg" SlotGroup LocalSlot 1 {Smoothed Request} "$sg" SlotGroup LocalSlot 2 {Initial Uncoordinated Request} "$sg" SlotGroup LocalSlot 3 {Adjusted Request} "$sg" SlotGroup LocalSlot 4 {Request Adjustment} "$o" SlotGroup {Bias and Accumulated Exchange} set sg "$o.Bias and Accumulated Exchange" "$sg" SlotGroup Order 34 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Accumulated Exchange} "$sg" SlotGroup LocalSlot 1 {Accumulated Exchange Max} "$sg" SlotGroup LocalSlot 2 {Accumulated Exchange Max Default} "$sg" SlotGroup LocalSlot 3 {Accumulated Exchange Min Default} "$sg" SlotGroup LocalSlot 4 {Accumulated Exchange Target Max} "$sg" SlotGroup LocalSlot 5 {Accumulated Exchange Target Min} "$sg" SlotGroup LocalSlot 6 {Bias} "$sg" SlotGroup LocalSlot 7 {Bias Negative Limit} "$sg" SlotGroup LocalSlot 8 {Bias Positive Limit} "$sg" SlotGroup LocalSlot 9 {Bias Ramp Max} "$sg" SlotGroup LocalSlot 10 {Bias Target Max} "$sg" SlotGroup LocalSlot 11 {Bias Target Min} "$sg" SlotGroup LocalSlot 12 {Accumulated Exchange Min} "$sg" SlotGroup LocalSlot 13 {Bias Actual} "$sg" SlotGroup LocalSlot 14 {Bias Scheduled} "$sg" SlotGroup LocalSlot 15 {Bias Scheduled for Plotting} "$sg" SlotGroup LocalSlot 16 {Bias Flow} "$sg" SlotGroup LocalSlot 17 {Bias Flow Combined} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Tailwater Elevation Baseline} "$sg" SlotGroup LocalSlot 8 {Bias Baseline} "$o" SlotGroup {Discharge Estimate and Outflow Initial Slots} set sg "$o.Discharge Estimate and Outflow Initial Slots" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Discharge Estimate} "$sg" SlotGroup LocalSlot 1 {Discharge Estimate Adjustment} "$sg" SlotGroup LocalSlot 2 {Discharge Estimate Initial} "$sg" SlotGroup LocalSlot 3 {Discharge Estimate Minimum} "$sg" SlotGroup LocalSlot 4 {Discharge Estimate Ramp Max} "$sg" SlotGroup LocalSlot 5 {Outflow Initial Adjustment} "$sg" SlotGroup LocalSlot 6 {Outflow Initial} "$o" SlotGroup {Spill Exchange Slots} set sg "$o.Spill Exchange Slots" "$sg" SlotGroup Order 23 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Spill Exchange Energy} "$sg" SlotGroup LocalSlot 1 {Spill Exchange Energy Default} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 17 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$o" hideSlots 27 hideOn hideEmptyOff "$o" hids {CJAD} "$o" hids {CJAD Allowable} "$o" hids {CJAD Estimate Prerun} "$o" hids {CJAD Holiday Max} "$o" hids {CJAD Input Prior to Run Period} "$o" hids {CJAD Saturday Max} "$o" hids {CJAD Sunday Max} "$o" hids {Cold Weather Min Power} "$o" hids {Delivered Energy} "$o" hids {Elevation Corrected Release} "$o" hids {Elevation Corrected Storage} "$o" hids {Initial Request As Flow} "$o" hids {Minimum Daily Relsease} "$o" hids {Request} "$o" hids {Revised Request As Flow} "$o" hids {Scheduled Outflow} "$o" hids {Smoothed Release} "$o" hids {Smoothed Storage} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Tailwater Corrected Release} "$o" hids {Tailwater Corrected Storage} "$o" hids {Temperature Forecast} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {Grand Coulee Constraints} set o "$ws.Grand Coulee Constraints" $ws SimObj $obj {DataObj} 720 1532 {} 1563 2572 1155 1653 "$o" geospatialCoords 0 0 1155 1653 "$o" objAttributes { \ } "$o" objOrd wsList 5046 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {License Min Pool Elevation} set s "$o.License Min Pool Elevation" "$s" order 17 "$s" units 3 {%f} 2 "$s" value 377.9520000000004 {m} "$o" {ScalarSlot} {License Max Pool Elevation} set s "$o.License Max Pool Elevation" "$s" order 16 "$s" units 3 {%f} 2 "$s" value 393.17676000000046 {m} "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 2600 @ 3 2500 2600 2700 2900 2800 2600 2500 2300 2100 2200 2100 2400 2300 2200 @ 2 2400 @ 2 2500 2700 2600 @ 3 250 @ 8 0 @ 8 250 @ 16 0 @ 8 250 @ 16 0 @ 8 250 @ 16 0 @ 8 250 @ 8 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 4125 @ 107 3550 @ 14 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 368.19840000000039 @ 121 "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 393.19200000000041 @ 121 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 289.56000000000029 @ 121 "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {m} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 301.75200000000029 @ 121 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Daily Spill} set s "$o.Special Operations Max Daily Spill" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max 24 Hour Spill} set s "$o.Special Operations Max 24 Hour Spill" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 11326.738636799997 @ 121 "$o" {SeriesSlot} {Tailwater Elevation Waiver Value} set s "$o.Tailwater Elevation Waiver Value" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Waiver Value} set s "$o.Pool Elevation Waiver Value" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Maximum Daily Pool Drawdown} set s "$o.Maximum Daily Pool Drawdown" "$s" order 20 "$s" units 3 {%f} 2 "$s" value 0.45720000000000049 {m} "$o" {SeriesSlot} {Request} set s "$o.Request" "$s" order 32 "$s" computedByExpr 2 {$ "Grand Coulee Constraints.Initial Uncoordinated Request" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 8000 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Delivered Energy} set s "$o.Delivered Energy" "$s" order 13 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 8000 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Initial Uncoordinated Request} set s "$o.Initial Uncoordinated Request" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {MWH} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 3642 3641 @ 2 3640 @ 3 3639 @ 2 3638 @ 2 3637 3617 3586 3548 3469 3470 3455 3533 3557 3537 3546 3604 3639 3646 3647 3642 @ 2 3643 @ 4 3753 3754 3728 @ 2 3653 3628 3627 @ 3 3647 3640 3368 3399 3411 3438 3440 3423 @ 2 3474 3480 3492 3573 3676 3679 3780 3781 3782 @ 2 3685 3605 3604 3679 3650 3680 3678 3680 3681 3604 3681 3677 3682 3681 3682 3669 3683 3677 3606 3642 3606 3771 3421 3356 4036 4024 4028 3948 3856 3853 3545 3238 3236 3235 @ 2 3234 @ 2 3233 "$o" {SeriesSlot} {Bias} set s "$o.Bias" "$s" order 6 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange} set s "$o.Accumulated Exchange" "$s" order 0 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax -36920.949999999997 36920.949999999997 "$s" setFSeries {MWH} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 1 "$s" setDSeries {MWH} {04-27-2017 14:00:00} {04-27-2017 14:00:00} 1 HOUR -1 877 "$o" {ScalarSlot} {Max 120 Hour Tailwater Drawdown} set s "$o.Max 120 Hour Tailwater Drawdown" "$s" order 18 "$s" units 3 {%f} 2 "$s" value 3.3528000000000033 {m} "$o" {ScalarSlot} {Max 24 Hour Tailwater Drawdown} set s "$o.Max 24 Hour Tailwater Drawdown" "$s" order 19 "$s" units 3 {%f} 2 "$s" value 3.3528000000000033 {m} "$o" {ScalarSlot} {Minimum Tailwater Elevation} set s "$o.Minimum Tailwater Elevation" "$s" order 22 "$s" units 3 {%f} 2 "$s" value 289.86480000000029 {m} "$o" {ScalarSlot} {Maximum Hourly Tailwater Drawdown} set s "$o.Maximum Hourly Tailwater Drawdown" "$s" order 21 "$s" units 3 {%f} 2 "$s" value 1.5240000000000016 {m} "$o" {ScalarSlot} {Bias Ramp Max} set s "$o.Bias Ramp Max" "$s" order 9 "$s" units 29 {%f} 2 "$s" value 1800 {MW} "$o" {SeriesSlot} {Bias Target Max} set s "$o.Bias Target Max" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Target Min} set s "$o.Bias Target Min" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Power Coefficient Approximation Default} set s "$o.Power Coefficient Approximation Default" "$s" order 28 "$s" computedByExpr 2 {"PowerCoeffApproxDefault"( % "Grand Coulee" )} "$s" units 31 {%f} 2 "$s" value 0.77449998403386888 {MW/cms} "$o" {SeriesSlot} {Spill As Energy} set s "$o.Spill As Energy" "$s" order 46 "$s" computedByExpr 3 {"SpillAsEnergy"( % "Grand Coulee", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Bias Positive Limit} set s "$o.Bias Positive Limit" "$s" order 8 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {SeriesSlot} {Bias Negative Limit} set s "$o.Bias Negative Limit" "$s" order 7 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 0 @ 121 "$o" {ScalarSlot} {Pool Elevation Margin} set s "$o.Pool Elevation Margin" "$s" order 23 "$s" units 2 {%f} 2 "$s" value 0.06096000000000007 {m} "$o" {SeriesSlot} {Pool Elevation Margin Adjust} set s "$o.Pool Elevation Margin Adjust" "$s" order 24 "$s" computedByExpr 2 {$ "Chief Joseph Constraints.Initial Request As Flow" [@"t"] * 1.00000000 "ft" / 1000.00000000 "kcfs"} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Accumulated Exchange Max} set s "$o.Accumulated Exchange Max" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 36921 @ 169 "$o" {ScalarSlot} {Accumulated Exchange Max Default} set s "$o.Accumulated Exchange Max Default" "$s" order 2 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Min Default} set s "$o.Accumulated Exchange Min Default" "$s" order 3 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accumulated Exchange Target Max} set s "$o.Accumulated Exchange Target Max" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 800 @ 169 "$o" {SeriesSlot} {Accumulated Exchange Target Min} set s "$o.Accumulated Exchange Target Min" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {ScalarSlot} {Turbine Release Curvature Parameter} set s "$o.Turbine Release Curvature Parameter" "$s" order 44 "$s" units 15 {%f} 2 "$s" value 193.68723068927994 {cms} "$o" {ScalarSlot} {Turbine Release Allowable Curvature} set s "$o.Turbine Release Allowable Curvature" "$s" order 45 "$s" computedByExpr 2 {ThisObject & "Turbine Release Curvature Parameter" [] * "HoursInRun"( )} "$s" units 15 {%f} 2 "$s" value 13945.480609628155 {cms} "$o" {SeriesSlot} {Turbine Release Positive Curvature} set s "$o.Turbine Release Positive Curvature" "$s" order 46 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Negative Curvature} set s "$o.Turbine Release Negative Curvature" "$s" order 47 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Smoothed Release} set s "$o.Smoothed Release" "$s" order 50 "$s" computedByExpr 2 {$ "Grand Coulee Constraints.Smoothed Request" [@"t"] / ( $ "Grand Coulee Constraints.Power Coeff Line Approx" [@"t"] * 1.00000000 "hr" )} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Elevation Corrected Release} set s "$o.Elevation Corrected Release" "$s" order 51 "$s" computedByExpr 4 {$ "Grand Coulee Constraints.Smoothed Release" [@"t"] - ( $ "Chief Joseph Constraints.Elevation Corrected Release" [@"t"] - $ "Chief Joseph Constraints.Smoothed Release" [@"t"] ) * ( $ "Chief Joseph Constraints.Power Coeff Line Approx" [@"t"] / $ "Grand Coulee Constraints.Power Coeff Line Approx" [@"t"] )} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Smoothed Tailwater} set s "$o.Smoothed Tailwater" "$s" order 52 "$s" computedByExpr 4 {"StorageToElevation"( % "Chief Joseph", $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"] ) + "TableInterpolation"( $ "Grand Coulee.Tailwater Table", 0.00000000, 1.00000000, $ "Grand Coulee Constraints.Elevation Corrected Release" [@"t"], @"t" )} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Smoothed Tailwater Drawdown} set s "$o.Smoothed Tailwater Drawdown" "$s" order 53 "$s" computedByExpr 4 {IF ( @"t" == @"Start Timestep" )\ THEN\ $ "Grand Coulee.Tailwater Elevation" [@"t - 1"] - $ "Grand Coulee Constraints.Smoothed Tailwater" [@"t"]\ ELSE\ $ "Grand Coulee Constraints.Corrected Tailwater" [@"t - 1"] - $ "Grand Coulee Constraints.Smoothed Tailwater" [@"t"]\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Tailwater Corrected Release} set s "$o.Tailwater Corrected Release" "$s" order 54 "$s" computedByExpr 4 {IF ( $ "Grand Coulee Constraints.Smoothed Tailwater Drawdown" [@"t"] > "GCLHourlyDrawdownApprox1Correction"( @"t" ) )\ THEN\ "TableInterpolation"( $ "Grand Coulee.Tailwater Table", 1.00000000, 0.00000000, IF ( @"t" == @"Start Timestep" )\ THEN\ $ "Grand Coulee.Tailwater Elevation" [@"t" - 1.00000000 "hr"]\ ELSE\ $ "Grand Coulee Constraints.Corrected Tailwater" [@"t" - 1.00000000 "hr"]\ ENDIF - "GCLHourlyDrawdownApprox1Correction"( @"t" ) - "StorageToElevation"( % "Chief Joseph", $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"] ), @"t" )\ ELSE\ IF ( $ "Grand Coulee Constraints.Smoothed Tailwater Drawdown" [@"t"] > "GCLHourlyDrawdownApprox2Correction"( @"t" ) )\ THEN\ "TableInterpolation"( $ "Grand Coulee.Tailwater Table", 1.00000000, 0.00000000, IF ( @"t" == @"Start Timestep" )\ THEN\ $ "Grand Coulee.Tailwater Elevation" [@"t" - 1.00000000 "hr"]\ ELSE\ $ "Grand Coulee Constraints.Corrected Tailwater" [@"t" - 1.00000000 "hr"]\ ENDIF - "GCLHourlyDrawdownApprox2Correction"( @"t" ) - "StorageToElevation"( % "Chief Joseph", $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"] ), @"t" )\ ELSE\ $ "Grand Coulee Constraints.Elevation Corrected Release" [@"t"]\ ENDIF\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Corrected Tailwater} set s "$o.Corrected Tailwater" "$s" order 55 "$s" computedByExpr 4 {"StorageToElevation"( % "Chief Joseph", $ "Chief Joseph Constraints.Elevation Corrected Storage" [@"t"] ) + "TableInterpolation"( $ "Grand Coulee.Tailwater Table", 0.00000000, 1.00000000, $ "Grand Coulee Constraints.Tailwater Corrected Release" [@"t"], @"t" )} "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Scaled Request} set s "$o.Scaled Request" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Smoothed Request} set s "$o.Smoothed Request" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Adjusted Request} set s "$o.Adjusted Request" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Request Adjustment} set s "$o.Request Adjustment" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Baseline} set s "$o.Power Coefficient Baseline" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Baseline} set s "$o.Power Baseline" "$s" order 46 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Regulated Spill Baseline} set s "$o.Regulated Spill Baseline" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Turbine Release Baseline} set s "$o.Turbine Release Baseline" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Pool Elevation Baseline} set s "$o.Pool Elevation Baseline" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Baseline} set s "$o.Inflow Baseline" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Baseline} set s "$o.Bias Baseline" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Cumulative} set s "$o.Energy In Storage Cumulative" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Tailwater Elevation Baseline} set s "$o.Tailwater Elevation Baseline" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange Min} set s "$o.Accumulated Exchange Min" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Bias Actual} set s "$o.Bias Actual" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 02:00:00} {04-27-2017 13:00:00} 1 HOUR -1 1 @ 36 "$s" setDSeries {MW} {04-26-2017 02:00:00} {04-27-2017 13:00:00} 1 HOUR -1 0 @ 36 "$o" {SeriesSlot} {Bias Scheduled} set s "$o.Bias Scheduled" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 9999 @ 169 "$o" {SeriesSlot} {Bias Scheduled for Plotting} set s "$o.Bias Scheduled for Plotting" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Spill Exchange Energy} set s "$o.Spill Exchange Energy" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {ScalarSlot} {Spill Exchange Energy Default} set s "$o.Spill Exchange Energy Default" "$s" order 57 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Power Coeff Line Approx} set s "$o.Power Coeff Line Approx" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation} set s "$o.Power Coefficient Approximation" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 30 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Power Coefficient Approximation Manual} set s "$o.Power Coefficient Approximation Manual" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Flow} set s "$o.Bias Flow" "$s" order 14 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax -2831.6846591999993 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" SlotGroup {Special Operations} set sg "$o.Special Operations" "$sg" SlotGroup Order 50 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 6 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Spill} "$o" SlotGroup {Federal Request Adjustment} set sg "$o.Federal Request Adjustment" "$sg" SlotGroup Order 36 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Scaled Request} "$sg" SlotGroup LocalSlot 1 {Smoothed Request} "$sg" SlotGroup LocalSlot 2 {Adjusted Request} "$sg" SlotGroup LocalSlot 3 {Request Adjustment} "$sg" SlotGroup LocalSlot 4 {Initial Uncoordinated Request} "$o" SlotGroup {Bias and Accumulated Exchange} set sg "$o.Bias and Accumulated Exchange" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Accumulated Exchange} "$sg" SlotGroup LocalSlot 1 {Accumulated Exchange Max} "$sg" SlotGroup LocalSlot 2 {Accumulated Exchange Max Default} "$sg" SlotGroup LocalSlot 3 {Accumulated Exchange Min Default} "$sg" SlotGroup LocalSlot 4 {Accumulated Exchange Target Max} "$sg" SlotGroup LocalSlot 5 {Accumulated Exchange Target Min} "$sg" SlotGroup LocalSlot 6 {Bias} "$sg" SlotGroup LocalSlot 7 {Bias Negative Limit} "$sg" SlotGroup LocalSlot 8 {Bias Positive Limit} "$sg" SlotGroup LocalSlot 9 {Bias Ramp Max} "$sg" SlotGroup LocalSlot 10 {Bias Target Max} "$sg" SlotGroup LocalSlot 11 {Bias Target Min} "$sg" SlotGroup LocalSlot 12 {Accumulated Exchange Min} "$sg" SlotGroup LocalSlot 13 {Bias Actual} "$sg" SlotGroup LocalSlot 14 {Bias Scheduled} "$sg" SlotGroup LocalSlot 15 {Bias Scheduled for Plotting} "$sg" SlotGroup LocalSlot 16 {Bias Flow} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coefficient Baseline} "$sg" SlotGroup LocalSlot 1 {Outflow Baseline} "$sg" SlotGroup LocalSlot 2 {Power Baseline} "$sg" SlotGroup LocalSlot 3 {Regulated Spill Baseline} "$sg" SlotGroup LocalSlot 4 {Turbine Release Baseline} "$sg" SlotGroup LocalSlot 5 {Pool Elevation Baseline} "$sg" SlotGroup LocalSlot 6 {Inflow Baseline} "$sg" SlotGroup LocalSlot 7 {Bias Baseline} "$sg" SlotGroup LocalSlot 8 {Tailwater Elevation Baseline} "$o" SlotGroup {Spill Exchange Slots} set sg "$o.Spill Exchange Slots" "$sg" SlotGroup Order 20 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Spill Exchange Energy Default} "$sg" SlotGroup LocalSlot 1 {Spill Exchange Energy} "$o" SlotGroup {Power Coeff Approx Slots} set sg "$o.Power Coeff Approx Slots" "$sg" SlotGroup Order 19 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Power Coeff Line Approx} "$sg" SlotGroup LocalSlot 1 {Power Coefficient Approximation} "$sg" SlotGroup LocalSlot 2 {Power Coefficient Approximation Manual} "$sg" SlotGroup LocalSlot 3 {Power Coefficient Approximation Default} "$o" hideSlots 21 hideOn hideEmptyOff "$o" hids {Corrected Tailwater} "$o" hids {Delivered Energy} "$o" hids {Elevation Corrected Release} "$o" hids {Max 120 Hour Tailwater Drawdown} "$o" hids {Max 24 Hour Tailwater Drawdown} "$o" hids {Maximum Daily Pool Drawdown} "$o" hids {Maximum Hourly Tailwater Drawdown} "$o" hids {Minimum Tailwater Elevation} "$o" hids {Pool Elevation Waiver Value} "$o" hids {Request} "$o" hids {Smoothed Release} "$o" hids {Smoothed Tailwater} "$o" hids {Smoothed Tailwater Drawdown} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Tailwater Corrected Release} "$o" hids {Tailwater Elevation Waiver Value} "$o" hids {Turbine Release Allowable Curvature} "$o" hids {Turbine Release Curvature Parameter} "$o" hids {Turbine Release Negative Curvature} "$o" hids {Turbine Release Positive Curvature} set obj {Requests} set o "$ws.Requests" $ws SimObj $obj {DataObj} 670 1166 {} 1505 1584 1207 775 "$o" geospatialCoords 0 0 1207 775 "$o" objAttributes { \ } "$o" objOrd wsList 5047 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Total Federal Initial Uncoordinated Request} set s "$o.Total Federal Initial Uncoordinated Request" "$s" order 1 "$s" computedByExpr 2 {$ "Grand Coulee Constraints.Initial Uncoordinated Request" [@"t"] + $ "Chief Joseph Constraints.Initial Uncoordinated Request" [@"t"]} "$s" userDescript {This slot aggregrates the Grand Coulee and Chief Joseph uncoordinated request prior to any adjustment to Chief Joseph to meet CJAD requirements.} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 13000 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Total Initial Uncoordinated Request} set s "$o.Total Initial Uncoordinated Request" "$s" order 2 "$s" computedByExpr 2 {$ "Requests.Total Nonfed Request" [@"t"] + $ "Requests.Total Federal Initial Uncoordinated Request" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 20000 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Nonfed Delivered Energy} set s "$o.Nonfed Delivered Energy" "$s" order 4 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 10000 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Federal Request} set s "$o.Total Federal Request" "$s" order 5 "$s" computedByExpr 5 {$ "Grand Coulee Constraints.Request" [@"t"] + $ "Chief Joseph Constraints.Request" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Total Request} set s "$o.Total Request" "$s" order 6 "$s" computedByExpr 5 {$ "Requests.Total Federal Request" [@"t"] + $ "Requests.Total Nonfed Request" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Total Delivered Energy} set s "$o.Total Delivered Energy" "$s" order 7 "$s" computedByExpr 5 {$ "Grand Coulee Constraints.Delivered Energy" [@"t"] + $ "Chief Joseph Constraints.Delivered Energy" [@"t"] + $ "Requests.Nonfed Delivered Energy" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Total Nonfed Request} set s "$o.Total Nonfed Request" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {PeakOffPeak} set s "$o.PeakOffPeak" "$s" order 10 "$s" computedByExpr 2 {IF ( "IsInput"( $ "Grand Coulee Constraints.Bias", @"t" ) AND "IsInput"( $ "Grand Coulee Constraints.Bias", @"t - 1" ) AND "IsInput"( $ "Grand Coulee Constraints.Bias", @"t + 1" ) AND "IsInput"( $ "Chief Joseph Constraints.Bias", @"t" ) AND "IsInput"( $ "Chief Joseph Constraints.Bias", @"t - 1" ) AND "IsInput"( $ "Chief Joseph Constraints.Bias", @"t + 1" ) )\ THEN\ IF ( $ "Requests.Total Nonfed Request" [@"t"] - ( $ "Grand Coulee Constraints.Bias" [@"t"] + $ "Chief Joseph Constraints.Bias" [@"t"] ) * 1.00000000 "hr" > $ "Requests.Total Nonfed Request" [@"t - 1"] - ( $ "Grand Coulee Constraints.Bias" [@"t - 1"] + $ "Chief Joseph Constraints.Bias" [@"t - 1"] ) * 1.00000000 "hr" )\ THEN\ IF ( $ "Requests.Total Nonfed Request" [@"t"] - ( $ "Grand Coulee Constraints.Bias" [@"t"] + $ "Chief Joseph Constraints.Bias" [@"t"] ) * 1.00000000 "hr" > $ "Requests.Total Nonfed Request" [@"t + 1"] - ( $ "Grand Coulee Constraints.Bias" [@"t + 1"] + $ "Chief Joseph Constraints.Bias" [@"t + 1"] ) * 1.00000000 "hr" )\ THEN\ 1.00000000 COMMENTED_BY "Peak"\ ELSE\ 2.00000000 COMMENTED_BY "Increasing Request"\ ENDIF\ ELSE\ IF ( $ "Requests.Total Nonfed Request" [@"t"] - ( $ "Grand Coulee Constraints.Bias" [@"t"] + $ "Chief Joseph Constraints.Bias" [@"t"] ) * 1.00000000 "hr" < $ "Requests.Total Nonfed Request" [@"t + 1"] - ( $ "Grand Coulee Constraints.Bias" [@"t + 1"] + $ "Chief Joseph Constraints.Bias" [@"t + 1"] ) * 1.00000000 "hr" )\ THEN\ 3.00000000 COMMENTED_BY "Valley"\ ELSE\ 4.00000000 COMMENTED_BY "Decreasing Request"\ ENDIF\ ENDIF\ ELSE\ IF ( $ "Requests.Total Nonfed Request" [@"t"] > $ "Requests.Total Nonfed Request" [@"t - 1"] )\ THEN\ IF ( $ "Requests.Total Nonfed Request" [@"t"] > $ "Requests.Total Nonfed Request" [@"t + 1"] )\ THEN\ 1.00000000 COMMENTED_BY "Peak"\ ELSE\ 2.00000000 COMMENTED_BY "Increasing Request"\ ENDIF\ ELSE\ IF ( $ "Requests.Total Nonfed Request" [@"t"] < $ "Requests.Total Nonfed Request" [@"t + 1"] )\ THEN\ 3.00000000 COMMENTED_BY "Valley"\ ELSE\ 4.00000000 COMMENTED_BY "Decreasing Request"\ ENDIF\ ENDIF COMMENTED_BY "Bias is not input"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Nonfed Request Daily Max} set s "$o.Nonfed Request Daily Max" "$s" order 11 "$s" computedByExpr 2 {"DailyMaxRunPeriodOnly"( $ "Requests.Total Nonfed Request", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Nonfed Request Daily Min} set s "$o.Nonfed Request Daily Min" "$s" order 12 "$s" computedByExpr 2 {"DailyMinRunPeriodOnly"( $ "Requests.Total Nonfed Request", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Initial Nonfed Request} set s "$o.Initial Nonfed Request" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 97 "$s" setDSeries {MWH} {04-27-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 3202 3318 3376 @ 2 3392 3373 3433 3386 3349 3359 3331 3053 2974 2963 2998 3136 3179 3220 3156 3168 3173 3157 3203 3213 3145 3134 3143 3243 3247 3238 3255 3269 3272 3257 3276 3180 3167 3166 3165 3178 3184 3151 3094 3113 3098 3106 3145 3135 3169 3144 3132 3036 3101 3062 3088 3135 3164 3204 3220 3113 3018 2939 2918 2950 3086 3180 3484 @ 2 3461 3474 3486 3470 3472 3485 3455 3441 3529 3488 3535 3502 3491 3351 3184 2783 2805 2796 2800 2777 2962 2876 2971 2990 2992 3000 3004 3048 3014 "$o" {SeriesSlot} {Nonfed Request Adjustment} set s "$o.Nonfed Request Adjustment" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {MWH} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 0 @ 169 "$o" {SeriesSlot} {Nonfed Delivered Energy Baseline} set s "$o.Nonfed Delivered Energy Baseline" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Nonfed Generation Baseline} set s "$o.Total Nonfed Generation Baseline" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Delivered Energy Baseline} set s "$o.Total Delivered Energy Baseline" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Federal Delivered Energy} set s "$o.Federal Delivered Energy" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Request NaN} set s "$o.Request NaN" "$s" order 16 "$s" units 35 {%f} 2 "$s" value 9999 {MWH} "$o" {SeriesSlot} {Total Nonfed Generation} set s "$o.Total Nonfed Generation" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Nonfed Request Fracton for 4 Project Coordination} set s "$o.Nonfed Request Fracton for 4 Project Coordination" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0.80000000000000004 {NONE} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 18 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Nonfed Delivered Energy Baseline} "$sg" SlotGroup LocalSlot 1 {Total Delivered Energy Baseline} "$sg" SlotGroup LocalSlot 2 {Total Nonfed Generation Baseline} "$o" hideSlots 34 hideOn hideEmptyOff "$o" hids {CJAD Draft1 Max} "$o" hids {CJAD Draft2 Max} "$o" hids {CJAD II Draft1 Max} "$o" hids {CJAD II Draft2 Max} "$o" hids {CJAD II Nonfed Remaining Draft Volume} "$o" hids {CJAD II Required Draft1 Volume} "$o" hids {CJAD II Required Draft2 Volume} "$o" hids {CJAD Nonfed Remaining Draft Volume} "$o" hids {CJAD Required Draft1 Volume} "$o" hids {CJAD Required Draft2 Volume} "$o" hids {Daily High Flow} "$o" hids {Daily Low Flow} "$o" hids {Desired Operating Elevation} "$o" hids {Elevation Max Controlling} "$o" hids {Elevation Min Controlling} "$o" hids {Fall Fish Spill Default} "$o" hids {Fall Fish Spill Manual} "$o" hids {Fall Fish Spill Season Default} "$o" hids {Fall Fish Spill Season Operations} "$o" hids {Flow Band Estimated Average Flow} "$o" hids {Flow Band Ranges} "$o" hids {Flow Bands} "$o" hids {Outflow Daily Target Default} "$o" hids {Outflow Daily Target Margin Default} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Special Operations Outflow Daily Target} "$o" hids {Special Operations Outflow Daily Target Margin} "$o" hids {Summer Fish Spill Default} "$o" hids {Summer Fish Spill Manual} "$o" hids {Summer Fish Spill Season Default} "$o" hids {Summer Fish Spill Season Operations} set obj {Vernita Bar} set o "$ws.Vernita Bar" $ws SimObj $obj {Reach} 448 709 {} 1070 1107 772 298 "$o" geospatialCoords 0 0 772 298 "$o" objAttributes { \ } "$o" objOrd wsList 5048 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {Autoregressive Outflow} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setFSeries {cms} {04-20-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 2 @ 241 "$s" setDSeries {cms} {04-20-2017 14:00:00} {04-30-2017 14:00:00} 1 HOUR -1 5983.3496848895984 5334.8938979327986 5637.8841564671984 6048.4784320511981 6368.4587985407989 6527.033139455998 7090.5383866367984 7699.3505883647977 7263.2711508479979 6408.1023837695984 6637.4688411647985 5844.597136588799 6212.7161422847985 6507.2113468415982 6657.2906337791983 6810.201605375998 7217.964196300798 6855.5085599231979 5666.2010030591982 4901.6461450751985 6022.993270118398 6096.6170712575986 5465.1513922559989 5960.696207615998 5450.9929689599985 5037.5670087167991 5026.2402700799985 5000.7551081471984 5516.1217161215991 5717.1713269247984 5833.2703979519983 5932.3793610239982 5623.725733171198 5581.2504632831988 5456.6563382783979 5711.5079576063981 5728.4980655615991 5940.8744150015991 6283.5082587647985 6207.0527729663982 6243.864673535998 6311.8251053567983 6374.1221678591983 6408.1023837695984 6255.1914121727987 6158.9141337599985 6413.7657530879987 6493.0529235455988 6314.656790015998 6141.9240258047985 5887.0724064767983 5844.597136588799 6102.280440575998 6561.0133553663982 6586.4985172991983 5952.201153638398 4907.3095143935989 5586.9138326015991 5705.8445882879987 6039.9833780735989 6348.6370059263982 6255.1914121727987 5983.3496848895984 6357.1320599039982 6323.151843993599 6317.4884746751986 6342.9736366079987 5926.7159917055988 5881.409037158398 5711.5079576063981 5782.3000740863981 5632.220787148799 5612.3989945343983 5425.5078070271984 5281.0918894079987 5567.0920399871984 5793.6268127231979 6258.0230968319984 5991.8447388671984 6427.9241763839982 6767.7263354879979 6450.5776536575986 6464.736076953599 6311.8251053567983 6442.0825996799986 6243.864673535998 6178.7359263743983 6300.4983667199986 6476.0628155903978 5821.9436593151986 5357.5473752063981 5292.4186280447984 5821.9436593151986 5620.8940485119983 5606.7356252159989 5652.0425797631988 5785.1317587455987 5864.4189292031979 5550.1019320319983 5686.0227956735989 5932.3793610239982 5683.1911110143983 5507.6266621439981 5459.4880229375985 5578.4187786239982 5320.7354746367992 5578.4187786239982 5329.2305286143983 5649.2108951039982 5419.844437708799 5484.9731848703987 5402.8543297535989 5601.0722558975986 5813.4486053375986 5909.7258837503978 5861.5872445439982 6105.1121252351986 6226.8745655807988 6221.2111962623976 6218.3795116031979 6940.4590996991983 6872.498667878398 7101.8651252735981 6886.6570911743975 6575.1717786623976 6957.4492076543975 7050.8948014079979 7036.7363781119984 6354.3003752447985 4352.2993211903986 5612.3989945343983 5878.5773524991982 5782.3000740863981 5796.4584973823985 5841.7654519295984 5802.1218667007988 6280.6765741055988 6283.5082587647985 6207.0527729663982 6277.8448894463982 6300.4983667199986 5855.9238752255987 5720.0030115839982 5717.1713269247984 5720.0030115839982 5957.8645229567983 6042.8150627327987 5887.0724064767983 5932.3793610239982 6368.4587985407989 7141.5087105023977 7150.0037644799977 6784.7164434431979 4839.3490825727986 5875.7456678399985 5521.7850854399985 5550.1019320319983 5819.1119746559989 5966.3595769343983 6048.4784320511981 6167.4091877375986 6750.7362275327987 6362.7954292223976 6289.1716280831979 6306.161736038398 6337.3102672895984 6113.6071792127987 5858.7555598847985 5843.8269183614966 NaN @ 72 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 3 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0.47999999999999998 "$o" {SeriesSlot} {Routed Flow} set s "$o.Routed Flow" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Autoregressive Flow Coefficients} set s "$o.Autoregressive Flow Coefficients" "$s" order 5 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 0.625 "$s" row 1 0.375 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {Vernita Bar Constraints} set o "$ws.Vernita Bar Constraints" $ws SimObj $obj {DataObj} 511 680 {} 1136 1065 838 256 "$o" geospatialCoords 0 0 838 256 "$o" objAttributes { \ } "$o" objOrd wsList 5049 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {RLF Daylight Max Flow Default} set s "$o.RLF Daylight Max Flow Default" "$s" order 1 "$s" units 18 {%f} 2 "$s" value 2010.4961080319995 {cms} "$o" {ScalarSlot} {RLF Daylight Min Flow Default} set s "$o.RLF Daylight Min Flow Default" "$s" order 2 "$s" units 18 {%f} 2 "$s" value 1670.6939489279996 {cms} "$o" {ScalarSlot} {Vernita Bar Min Flow} set s "$o.Vernita Bar Min Flow" "$s" order 3 "$s" units 18 {%f} 2 "$s" value 1019.4064773119998 {cms} "$o" {SeriesSlot} {PLF Manual} set s "$o.PLF Manual" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 2010.4961080319995 @ 121 "$o" {ScalarSlot} {Critical Elevation Flow Default} set s "$o.Critical Elevation Flow Default" "$s" order 7 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Critical Elevation Flow Manual} set s "$o.Critical Elevation Flow Manual" "$s" order 8 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {PostHatch 36 to 50 kcfs Period PLF} set s "$o.PostHatch 36 to 50 kcfs Period PLF" "$s" order 9 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Emergence 36 to 50 kcfs Period PLF} set s "$o.Emergence 36 to 50 kcfs Period PLF" "$s" order 10 "$s" units 18 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {8 Hour Dry Cumulative Min} set s "$o.8 Hour Dry Cumulative Min" "$s" order 11 "$s" computedByExpr 2 {8.00000000 * "FlowToVolume"( $ "Vernita Bar Constraints.Vernita Bar Min Flow" [], @"t" ) + "FlowToVolume"( $ "Vernita Bar Constraints.Protection Level Flow" [], @"t" ) + $ "Vernita Bar Constraints.8 Hour Dry Safety Factor" []} "$s" userDescript {This slot is used with the Max 8 Consecutive Hours Below PLF During Pre-Hatch constraint (part of the Vernita Bar Protection Level Flows goal). Because the actual policy cannot be modeled, this slot provides an approximation by calculating the minimum outflow volume for 8 hours at 36 kcfs and one hour at PLF. This would be the minimum requirement to meet the constraint. A safety factor (added volume) can be added to this value to increase the probability of actual compliance. This is set in the Vernita Bar Constraints.8 Hour Dry Safety Factor scalar slot (currently 0). A post-run check is made on the actual outflows to see if there was any violation during the run. In the Vernita bar Constraints.8 Hour Dry Check slot, the value 9999.99 will be displayed for any timestep of violation with 0 elsewhere.} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {8 Hour Dry Safety Factor} set s "$o.8 Hour Dry Safety Factor" "$s" order 12 "$s" units 10 {%f} 2 "$s" value 0 {m3} "$o" {SeriesSlot} {8 Hour Dry Check} set s "$o.8 Hour Dry Check" "$s" order 13 "$s" computedByExpr 3 {IF ( "IsActiveSeasonFromDates"( "PreHatch Period", @"t" ) AND NOT IsNaN $ "Vernita Bar.Outflow" [@"t"] )\ THEN\ "VernitaBarEightHourDryCheck"( @"t" )\ ELSE\ 0.00000000\ ENDIF} "$s" userDescript {This slot checks the actual compliance with the Max 8 Hours below PLF constraint. The constraint is modeled by requiring a minimum cumulative outflow over 9 hours. The actual policy is based on the instantaneous flow being at or above PLF at least once every 8 hours (rollling window). This slot checks that the maximum flow over the past 9 hours was at least the PLF. If there are more than 8 consecutive hours below PLF it displays 9999.99 for the timesteps of violation. Otherwise 0 is displayed.} "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Outflow Baseline} set s "$o.Outflow Baseline" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Protection Level Flow} set s "$o.Protection Level Flow" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {PLF Default} set s "$o.PLF Default" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {RLF Daylight Max Flow} set s "$o.RLF Daylight Max Flow" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 2010.4961080319995 @ 169 "$o" {SeriesSlot} {RLF Daylight Min Flow} set s "$o.RLF Daylight Min Flow" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 2831.6846591999993 "$s" setFSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1 @ 169 "$s" setDSeries {cms} {04-26-2017 14:00:00} {05-03-2017 14:00:00} 1 HOUR -1 1727.3276421119995 @ 169 "$o" SlotGroup {PLF} set sg "$o.PLF" "$sg" SlotGroup Order 14 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {PLF Manual} "$sg" SlotGroup LocalSlot 1 {Critical Elevation Flow Default} "$sg" SlotGroup LocalSlot 2 {Critical Elevation Flow Manual} "$sg" SlotGroup LocalSlot 3 {PostHatch 36 to 50 kcfs Period PLF} "$sg" SlotGroup LocalSlot 4 {Emergence 36 to 50 kcfs Period PLF} "$sg" SlotGroup LocalSlot 5 {Protection Level Flow} "$sg" SlotGroup LocalSlot 6 {PLF Default} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 9 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow Baseline} "$o" SlotGroup {RLF} set sg "$o.RLF" "$sg" SlotGroup Order 9 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {RLF Daylight Max Flow} "$sg" SlotGroup LocalSlot 1 {RLF Daylight Max Flow Default} "$sg" SlotGroup LocalSlot 2 {RLF Daylight Min Flow} "$sg" SlotGroup LocalSlot 3 {RLF Daylight Min Flow Default} "$o" hideSlots 34 hideOn hideEmptyOff "$o" hids {CJAD Draft1 Max} "$o" hids {CJAD Draft2 Max} "$o" hids {CJAD II Draft1 Max} "$o" hids {CJAD II Draft2 Max} "$o" hids {CJAD II Nonfed Remaining Draft Volume} "$o" hids {CJAD II Required Draft1 Volume} "$o" hids {CJAD II Required Draft2 Volume} "$o" hids {CJAD Nonfed Remaining Draft Volume} "$o" hids {CJAD Required Draft1 Volume} "$o" hids {CJAD Required Draft2 Volume} "$o" hids {Daily High Flow} "$o" hids {Daily Low Flow} "$o" hids {Desired Operating Elevation} "$o" hids {Elevation Max Controlling} "$o" hids {Elevation Min Controlling} "$o" hids {Fall Fish Spill Default} "$o" hids {Fall Fish Spill Manual} "$o" hids {Fall Fish Spill Season Default} "$o" hids {Fall Fish Spill Season Operations} "$o" hids {Flow Band Estimated Average Flow} "$o" hids {Flow Band Ranges} "$o" hids {Flow Bands} "$o" hids {Outflow Daily Target Default} "$o" hids {Outflow Daily Target Margin Default} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Special Operations Outflow Daily Target} "$o" hids {Special Operations Outflow Daily Target Margin} "$o" hids {Summer Fish Spill Default} "$o" hids {Summer Fish Spill Manual} "$o" hids {Summer Fish Spill Season Default} "$o" hids {Summer Fish Spill Season Operations} set obj {Methow River} set o "$ws.Methow River" $ws SimObj $obj {Reach} 237 1499 {} 809 1848 511 1039 "$o" geospatialCoords 0 0 511 1039 "$o" objAttributes { \ } "$o" objOrd wsList 5051 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 1 @ 217 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 90.897077560319971 @ 4 91.180246026239971 @ 10 91.746582958079969 92.029751423999983 @ 2 92.596088355839981 92.879256821759981 93.445593753599979 93.728762219519979 @ 2 94.295099151359977 @ 2 94.578267617279977 @ 11 94.295099151359977 94.578267617279977 @ 4 95.144604549119975 @ 2 95.427773015039975 @ 2 95.994109946879973 96.277278412799973 @ 3 96.843615344639971 @ 14 97.126783810559971 @ 2 97.693120742399969 97.976289208319969 @ 2 98.542626140159967 99.10896307199998 @ 2 99.39213153791998 @ 2 99.958468469759978 @ 6 100.24163693567998 @ 10 100.80797386751998 @ 2 101.09114233343998 @ 2 101.65747926527997 @ 4 104.00777753241597 @ 11 105.22540193587197 @ 24 95.45608986163198 @ 24 87.810541281791984 @ 24 87.442422276095982 @ 24 87.952125514751984 @ 14 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {Okanogan River} set o "$ws.Okanogan River" $ws SimObj $obj {Reach} 320 1547 {} 871 1909 573 1100 "$o" geospatialCoords 0 0 573 1100 "$o" objAttributes { \ } "$o" objOrd wsList 5052 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 1 @ 217 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 135.35452670975997 135.92086364159996 @ 4 136.48720057343996 @ 2 137.33670597119996 137.90304290303996 138.18621136895996 @ 2 138.75254830079996 139.31888523263996 139.60205369855996 @ 2 140.16839063039995 140.73472756223995 141.01789602815995 @ 2 141.58423295999995 @ 2 142.15056989183995 @ 2 142.43373835775995 @ 2 143.00007528959998 @ 2 143.84958068735997 144.41591761919997 144.98225455103997 145.83175994879997 146.39809688063997 146.96443381247997 147.24760227839997 147.81393921023997 148.38027614207996 @ 2 148.66344460799996 @ 2 149.22978153983996 @ 2 149.79611847167996 150.07928693759996 150.64562386943996 151.21196080127996 151.77829773311996 152.06146619903996 @ 2 152.62780313087995 153.19414006271995 153.76047699455995 @ 3 154.04364546047995 154.60998239231995 @ 2 155.17631932415995 155.45948779007995 156.02582472191995 156.59216165375997 157.15849858559997 157.44166705151997 158.57434091519997 159.14067784703997 159.42384631295997 160.55652017663996 @ 2 161.40602557439996 161.97236250623996 162.53869943807996 163.10503636991996 163.38820483583996 @ 2 164.52087869951995 165.08721563135995 165.65355256319995 165.93672102911995 @ 2 166.50305796095995 167.06939489279995 @ 2 168.48523722239995 @ 2 169.05157415423994 170.18424801791997 @ 2 170.46741648383997 171.03375341567997 171.60009034751997 172.73276421119996 173.58226960895996 174.71494347263996 176.13078580223996 177.26345966591995 178.39613352959995 179.81197585919995 144.10443230668795 @ 11 152.23136727859196 @ 24 153.22245690931197 @ 24 139.37551892582397 @ 24 125.55689778892797 @ 24 121.70580665241597 @ 14 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 3 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {Entiat River} set o "$ws.Entiat River" $ws SimObj $obj {Reach} 70 1289 {} 675 1715 377 906 "$o" geospatialCoords 0 0 377 906 "$o" objAttributes { \ } "$o" objOrd wsList 5053 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 1 @ 217 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 25.456845086207995 @ 6 25.230310313471993 25.456845086207995 @ 2 25.711696705535992 @ 3 25.938231478271994 @ 2 26.164766251007993 @ 4 26.419617870335994 @ 7 26.164766251007993 @ 11 26.419617870335994 @ 7 26.164766251007993 @ 2 26.419617870335994 26.164766251007993 @ 6 25.938231478271994 26.164766251007993 @ 2 25.938231478271994 @ 2 26.164766251007993 @ 2 26.419617870335994 @ 2 26.646152643071993 26.901004262399994 @ 5 27.127539035135992 @ 6 26.901004262399994 @ 10 27.127539035135992 @ 11 26.901004262399994 @ 2 20.954466478079993 @ 11 18.802386137087996 @ 24 14.866344460799995 @ 24 13.875254830079996 @ 24 15.914067784703995 @ 24 13.252284205055997 @ 14 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {Wenatchee River} set o "$ws.Wenatchee River" $ws SimObj $obj {Reach} 84 1097 {} 646 1480 348 671 "$o" geospatialCoords 0 0 348 671 "$o" objAttributes { \ } "$o" objOrd wsList 5054 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 1 @ 217 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 145.83175994879997 146.39809688063997 @ 3 146.96443381247997 @ 2 147.81393921023997 @ 3 148.38027614207996 @ 4 148.94661307391996 @ 7 149.51295000575996 @ 4 148.94661307391996 149.51295000575996 @ 2 148.94661307391996 149.51295000575996 @ 2 148.94661307391996 149.51295000575996 148.94661307391996 149.51295000575996 @ 2 148.94661307391996 149.51295000575996 148.94661307391996 149.51295000575996 @ 3 148.94661307391996 @ 3 148.38027614207996 @ 5 147.81393921023997 @ 3 148.38027614207996 @ 2 147.81393921023997 @ 2 148.38027614207996 @ 4 148.94661307391996 @ 3 149.51295000575996 @ 3 150.07928693759996 @ 2 150.92879233535996 151.49512926719996 @ 3 152.06146619903996 152.62780313087995 152.06146619903996 152.62780313087995 @ 4 153.47730852863995 @ 2 154.04364546047995 @ 2 154.60998239231995 @ 3 155.17631932415995 156.02582472191995 @ 5 156.59216165375997 156.02582472191995 156.59216165375997 156.02582472191995 161.88741196646396 @ 11 162.25553097215996 @ 24 130.14422693683196 @ 24 113.26738636799998 @ 24 124.08442176614396 @ 24 123.57471852748797 @ 14 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {Crab Creek} set o "$ws.Crab Creek" $ws SimObj $obj {Reach} 423 773 {} 786 1137 488 328 "$o" geospatialCoords 0 0 488 328 "$o" objAttributes { \ } "$o" objOrd wsList 5055 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 19 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 1 @ 217 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 4.5306954547199991 @ 22 4.4457449149439991 4.5306954547199991 @ 4 4.6156459944959991 @ 5 4.5306954547199991 @ 6 4.4457449149439991 @ 4 4.3607943751679992 @ 2 4.2758438353919992 @ 2 4.3607943751679992 @ 2 4.2758438353919992 4.3607943751679992 @ 4 4.2758438353919992 @ 11 4.1908932956159992 @ 8 4.2758438353919992 @ 9 4.1908932956159992 @ 5 4.1059427558399992 @ 10 0.4530695454719999 @ 121 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 19 19 19 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 19 3 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {Federal Constraints} set o "$ws.Federal Constraints" $ws SimObj $obj {DataObj} 554 1409 {} 1118 1774 820 965 "$o" geospatialCoords 0 0 820 965 "$o" objAttributes { \ } "$o" objOrd wsList 5056 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Bias Target Max} set s "$o.Bias Target Max" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Target Min} set s "$o.Bias Target Min" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accumulated Exchange Max Default} set s "$o.Accumulated Exchange Max Default" "$s" order 1 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Min Default} set s "$o.Accumulated Exchange Min Default" "$s" order 2 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accumulated Exchange Target Max} set s "$o.Accumulated Exchange Target Max" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange Target Min} set s "$o.Accumulated Exchange Target Min" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange Max} set s "$o.Accumulated Exchange Max" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Ramp Max} set s "$o.Bias Ramp Max" "$s" order 10 "$s" units 29 {%f} 2 "$s" value 600 {MW} "$o" {SeriesSlot} {CJAD Fed Remaining Draft Volume} set s "$o.CJAD Fed Remaining Draft Volume" "$s" order 15 "$s" computedByExpr 2 {IF ( $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ 0.50000000 * ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraft"( % "Chief Joseph", @"t" ) )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {CJAD II Fed Remaining Draft Volume} set s "$o.CJAD II Fed Remaining Draft Volume" "$s" order 16 "$s" computedByExpr 2 {IF ( $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [@"t"] > 0.00000000 "1000 cfs-hr" )\ THEN\ 0.50000000 * ( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [@"t"] - "DownstreamDraftCJADII"( % "Chief Joseph", @"t" ) )\ ELSE\ 0.00000000 "1000 cfs-hr"\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 10 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Minimized Ending Accumulated Exchange} set s "$o.Minimized Ending Accumulated Exchange" "$s" order 18 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 36920.949999999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Maximized Ending Federal Storage} set s "$o.Maximized Ending Federal Storage" "$s" order 17 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 3000000.5499999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Negative Limit} set s "$o.Bias Negative Limit" "$s" order 8 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 -600 @ 121 "$o" {SeriesSlot} {Bias Positive Limit} set s "$o.Bias Positive Limit" "$s" order 9 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setFSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 1 @ 121 "$s" setDSeries {MW} {04-26-2017 14:00:00} {05-01-2017 14:00:00} 1 HOUR -1 600 @ 121 "$o" {SeriesSlot} {Total Bias} set s "$o.Total Bias" "$s" order 19 "$s" computedByExpr 3 {$ "Grand Coulee Constraints.Bias" [] + $ "Chief Joseph Constraints.Bias" []} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Anticipated Load Shift} set s "$o.Anticipated Load Shift" "$s" order 7 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Federal Generation} set s "$o.Federal Generation" "$s" order 20 "$s" computedByExpr 3 {$ "Grand Coulee.Energy" [@"t"] + $ "Chief Joseph.Energy" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Initial Federal Request} set s "$o.Initial Federal Request" "$s" order 21 "$s" computedByExpr 3 {$ "Grand Coulee Constraints.Initial Uncoordinated Request" [@"t"] + $ "Chief Joseph Constraints.Initial Uncoordinated Request" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Scaled Federal Request} set s "$o.Scaled Federal Request" "$s" order 22 "$s" computedByExpr 3 {$ "Chief Joseph Constraints.Initial Uncoordinated Request" [@"t"] * ( "InDayTotal"( $ "Chief Joseph Constraints.Initial Request As Flow", @"t" ) * $ "Chief Joseph Constraints.Power Coeff Line Approx" [@"t"] * 1.00000000 "hr" / "InDayTotal"( $ "Chief Joseph Constraints.Initial Uncoordinated Request", @"t" ) )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Bias Positive Curvature} set s "$o.Bias Positive Curvature" "$s" order 26 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 600 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Negative Curvature} set s "$o.Bias Negative Curvature" "$s" order 27 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 600 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Curvature Parameter} set s "$o.Bias Curvature Parameter" "$s" order 28 "$s" units 29 {%f} 2 "$s" value 10 {MW} "$o" {SeriesSlot} {Bias Allowable Curvature} set s "$o.Bias Allowable Curvature" "$s" order 29 "$s" computedByExpr 2 {IF ( @"t" >= @"Start Timestep + 2" )\ THEN\ FOR ( DATETIME timestep IN "DateMax"( "PreviousDate"( @"t", @"1:00:00" ), @"Start Timestep + 2" ) TO "DateMin"( "NextDate"( @"t", @"24:00:00" ), @"Finish Timestep" ) ) STAT_SUM\ $ "Federal Constraints.Bias Curvature Parameter" []\ ENDFOR\ ENDIF} "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Adjusted Request} set s "$o.Adjusted Request" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Peak Valley} set s "$o.Peak Valley" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Upper Generation Bound} set s "$o.Upper Generation Bound" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Lower Generation Bound} set s "$o.Lower Generation Bound" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Positive Limit Revised} set s "$o.Bias Positive Limit Revised" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Negative Limit Revised} set s "$o.Bias Negative Limit Revised" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Increment} set s "$o.Bias Increment" "$s" order 13 "$s" units 29 {%f} 2 "$s" value 25 {MW} "$o" {SeriesSlot} {Bias Input} set s "$o.Bias Input" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Flag} set s "$o.Bias Flag" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Block Duration Min} set s "$o.Bias Block Duration Min" "$s" order 10 "$s" units 36 {%f} 2 "$s" value 4 {hr} "$o" {ScalarSlot} {Bias Cycle Duration Positive} set s "$o.Bias Cycle Duration Positive" "$s" order 11 "$s" units 36 {%f} 2 "$s" value 6 {hr} "$o" {ScalarSlot} {Bias Cycle Duration Negative} set s "$o.Bias Cycle Duration Negative" "$s" order 12 "$s" units 36 {%f} 2 "$s" value 6 {hr} "$o" {SeriesSlot} {Bias Reshaped} set s "$o.Bias Reshaped" "$s" order 10 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Before Reshaping} set s "$o.Bias Before Reshaping" "$s" order 10 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Use Revised Limits} set s "$o.Bias Use Revised Limits" "$s" order 10 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Positive Limit Combined} set s "$o.Bias Positive Limit Combined" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Negative Limit Combined} set s "$o.Bias Negative Limit Combined" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Accumulated Exchange Min} set s "$o.Accumulated Exchange Min" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Actual} set s "$o.Bias Actual" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Scheduled} set s "$o.Bias Scheduled" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Scheduled for Plotting} set s "$o.Bias Scheduled for Plotting" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias NaN} set s "$o.Bias NaN" "$s" order 11 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {SeriesSlot} {Bias} set s "$o.Bias" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Bias Baseline} set s "$o.Bias Baseline" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Federal Capacity Buffer} set s "$o.Bias Federal Capacity Buffer" "$s" order 11 "$s" units 29 {%f} 2 "$s" value 500 {MW} "$o" SlotGroup {Bias and Accumulated Exchange Slots} set sg "$o.Bias and Accumulated Exchange Slots" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Adjusted Request} "$sg" SlotGroup LocalSlot 1 {Bias Negative Limit} "$sg" SlotGroup LocalSlot 2 {Bias Positive Limit} "$sg" SlotGroup LocalSlot 3 {Accumulated Exchange Max} "$sg" SlotGroup LocalSlot 4 {Accumulated Exchange Max Default} "$sg" SlotGroup LocalSlot 5 {Accumulated Exchange Min Default} "$sg" SlotGroup LocalSlot 6 {Accumulated Exchange Target Max} "$sg" SlotGroup LocalSlot 7 {Accumulated Exchange Target Min} "$sg" SlotGroup LocalSlot 8 {Bias Negative Curvature} "$sg" SlotGroup LocalSlot 9 {Bias Positive Curvature} "$sg" SlotGroup LocalSlot 10 {Bias Ramp Max} "$sg" SlotGroup LocalSlot 11 {Bias Target Max} "$sg" SlotGroup LocalSlot 12 {Bias Target Min} "$sg" SlotGroup LocalSlot 13 {Peak Valley} "$sg" SlotGroup LocalSlot 14 {Upper Generation Bound} "$sg" SlotGroup LocalSlot 15 {Lower Generation Bound} "$sg" SlotGroup LocalSlot 16 {Bias Positive Limit Revised} "$sg" SlotGroup LocalSlot 17 {Bias Negative Limit Revised} "$sg" SlotGroup LocalSlot 18 {Bias Allowable Curvature} "$sg" SlotGroup LocalSlot 19 {Bias Curvature Parameter} "$sg" SlotGroup LocalSlot 20 {Bias Increment} "$sg" SlotGroup LocalSlot 21 {Total Bias} "$sg" SlotGroup LocalSlot 22 {Bias Flag} "$sg" SlotGroup LocalSlot 23 {Bias Input} "$sg" SlotGroup LocalSlot 24 {Bias Block Duration Min} "$sg" SlotGroup LocalSlot 25 {Bias Cycle Duration Negative} "$sg" SlotGroup LocalSlot 26 {Bias Cycle Duration Positive} "$sg" SlotGroup LocalSlot 27 {Bias Reshaped} "$sg" SlotGroup LocalSlot 28 {Bias Before Reshaping} "$sg" SlotGroup LocalSlot 29 {Bias Negative Limit Combined} "$sg" SlotGroup LocalSlot 30 {Bias Positive Limit Combined} "$sg" SlotGroup LocalSlot 31 {Accumulated Exchange Min} "$sg" SlotGroup LocalSlot 32 {Bias Actual} "$sg" SlotGroup LocalSlot 33 {Bias Scheduled} "$sg" SlotGroup LocalSlot 34 {Bias Scheduled for Plotting} "$sg" SlotGroup LocalSlot 35 {Bias NaN} "$sg" SlotGroup LocalSlot 36 {Bias} "$sg" SlotGroup LocalSlot 37 {Bias Use Revised Limits} "$sg" SlotGroup LocalSlot 38 {Bias Federal Capacity Buffer} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 11 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Bias Baseline} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Chelan River} set o "$ws.Chelan River" $ws SimObj $obj {Reach} 76 1369 {} 522 1645 58 746 "$o" geospatialCoords 0 0 58 746 "$o" objAttributes { \ } "$o" objOrd wsList 5058 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" sDM {Routing} {Time Lag} {STD} "$o" sDM {Routing Parameters} {None} {STD} "$o" sDM {Local Inflow and Solution Direction} {No Local Inflow, Solve Inflow or Outflow} {STD} "$o" sDM {Generate Local Inflows} {None} {STD} "$o" sDM {Reach Evaporation} {None} {STD} "$o" sDM {Depth to Flow} {None} {STD} "$o" sDM {Stage} {None} {STD} "$o" sDM {Stage Adjustment} {None} {STD} "$o" sDM {Volume} {None} {STD} "$o" sDM {Gain Loss} {None} {STD} "$o" sDM {Apply Gain Loss} {Current Outflow} {STD} "$o" sDM {Reach Seepage} {None} {STD} "$o" sDM {Seepage Routing} {No Routing} {STD} "$o" sDM {Reach Conductance} {Specify Conductance} {STD} "$o" sDM {Drain Elevation} {None} {STD} "$o" sDM {Reach Bank Storage} {None} {STD} "$o" sDM {Outflow Adjustment} {None} {STD} "$o" sDM {Diversion from Reach} {None} {STD} "$o" sDM {Min Diversion Bypass} {None} {STD} "$o" sDM {MODFLOW Link Category Reach} {None} {STD} "$o" sDM {Reach Account Slot Inflow} {No Method} {OLAM_NEVER} "$o" sDM {Reach Account Gain Loss} {No Method} {OLAM_NEVER} "$o" sDM {Reach Final Inflows} {Constrain Final Inflows} {STD} "$o" sDM {Reach Water Quality} {None} {STD} "$o" sDM {Water Quality Routing} {None} {STD} "$o" sDM {Reach Seepage Water Quality} {None} {STD} "$o" sDM {Reach Optimization Total Dissolved Gas} {None} {STD} "$o" sDM {Water Elevation at Diversion STLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion STGE} {Piecewise} {STD} "$o" sDM {Water Elevation at Diversion MTLE} {Line} {STD} "$o" sDM {Water Elevation at Diversion MTGE} {Piecewise} {STD} "$o" sDM {Instantiate Reach Optimization Slots} {Instantiate Reach Optimization Slots} {STD} "$o" sDM {Alternative Routing on Subbasin} {None} {STD} "$o" {SimObjMultiSlot} {Return Flow} set s "$o.Return Flow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setFSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 1 @ 217 "$s" setDSeries {cms} {04-23-2017 14:00:00} {05-02-2017 14:00:00} 1 HOUR -1 72.944196820991976 @ 11 73.425583213055987 @ 24 86.224797872639982 @ 24 78.635882985983983 @ 24 115.73095202150397 @ 24 106.21649156659197 @ 24 73.142414747135987 @ 24 56.548742644223985 @ 24 67.620629661695986 @ 24 58.474288212479983 @ 14 "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {LagTime} set s "$o.LagTime" "$s" order 500 "$s" resize 1 1 "$s" setRowLabels {} "$s" setColumnLabels {LagTime} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 36 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 0 "$o" {SeriesSlot} {Water Elevation at Diversion} set s "$o.Water Elevation at Diversion" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Water Elevation at Diversion LP Param} set s "$o.Water Elevation at Diversion LP Param" "$s" order 500 "$s" resize 1 3 "$s" setRowLabels {} "$s" setColumnLabels {Tangent} {Line} {Piecewise} "$s" setMaximums NaN NaN NaN "$s" setMinimums NaN NaN NaN "$s" setUnits 15 15 15 "$s" setUsrFormat {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} "$s" row -1 NaN "$o" {TableSlot} {Inflow Stage Table} set s "$o.Inflow Stage Table" "$s" order 500 "$s" resize 2 2 "$s" setRowLabels {} {} "$s" setColumnLabels {Flow} {Stage} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 15 2 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN set obj {Constraint Evaluation} set o "$ws.Constraint Evaluation" $ws SimObj $obj {DataObj} 669 1086 {} 1212 1546 748 647 "$o" geospatialCoords 0 0 748 647 "$o" objAttributes { \ } "$o" objOrd wsList 5060 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" {SeriesSlot} {Vernita Bar Protection Level Flow Deficiency} set s "$o.Vernita Bar Protection Level Flow Deficiency" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Vernita Bar Spawning Period Max Daylight Flow Exceedance} set s "$o.Vernita Bar Spawning Period Max Daylight Flow Exceedance" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Vernita Bar Spawning Period Min Daylight Flow Deficiency} set s "$o.Vernita Bar Spawning Period Min Daylight Flow Deficiency" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids Flow Band Exceedance} set s "$o.Priest Rapids Flow Band Exceedance" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Federal Request Deviation} set s "$o.Federal Request Deviation" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Nonfed Request Deviation} set s "$o.Nonfed Request Deviation" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells Fish Spill Deficiency} set s "$o.Wells Fish Spill Deficiency" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach Fish Spill Deficiency} set s "$o.Rocky Reach Fish Spill Deficiency" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island Fish Spill Deficiency} set s "$o.Rock Island Fish Spill Deficiency" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum Fish Spill Deficiency} set s "$o.Wanapum Fish Spill Deficiency" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids Fish Spill Deficiency} set s "$o.Priest Rapids Fish Spill Deficiency" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Vernita Bar 8 Hours Below PLF Exceedance} set s "$o.Vernita Bar 8 Hours Below PLF Exceedance" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" hideSlots 34 hideOn hideEmptyOff "$o" hids {CJAD Draft1 Max} "$o" hids {CJAD Draft2 Max} "$o" hids {CJAD II Draft1 Max} "$o" hids {CJAD II Draft2 Max} "$o" hids {CJAD II Nonfed Remaining Draft Volume} "$o" hids {CJAD II Required Draft1 Volume} "$o" hids {CJAD II Required Draft2 Volume} "$o" hids {CJAD Nonfed Remaining Draft Volume} "$o" hids {CJAD Required Draft1 Volume} "$o" hids {CJAD Required Draft2 Volume} "$o" hids {Daily High Flow} "$o" hids {Daily Low Flow} "$o" hids {Desired Operating Elevation} "$o" hids {Elevation Max Controlling} "$o" hids {Elevation Min Controlling} "$o" hids {Fall Fish Spill Default} "$o" hids {Fall Fish Spill Manual} "$o" hids {Fall Fish Spill Season Default} "$o" hids {Fall Fish Spill Season Operations} "$o" hids {Flow Band Estimated Average Flow} "$o" hids {Flow Band Ranges} "$o" hids {Flow Bands} "$o" hids {Outflow Daily Target Default} "$o" hids {Outflow Daily Target Margin Default} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Special Operations Outflow Daily Target} "$o" hids {Special Operations Outflow Daily Target Margin} "$o" hids {Summer Fish Spill Default} "$o" hids {Summer Fish Spill Manual} "$o" hids {Summer Fish Spill Season Default} "$o" hids {Summer Fish Spill Season Operations} set obj {Nonfederal Data} set o "$ws.Nonfederal Data" $ws SimObj $obj {DataObj} 482 1034 {} 1168 1460 704 651 "$o" geospatialCoords 0 0 704 651 "$o" objAttributes { \ } "$o" objOrd wsList 5092 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {Draft Percent Tolerance} set s "$o.Draft Percent Tolerance" "$s" order 0 "$s" units 75 {%f} 2 "$s" value 0.14999999999999999 {decimal} "$o" {SeriesSlot} {NonFederal Energy In Storage Cumulative With Fed Storage} set s "$o.NonFederal Energy In Storage Cumulative With Fed Storage" "$s" order 10 "$s" computedByExpr 3 {FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "SlotValueFromDataObject"( res, "Energy In Storage Cumulative", @"t" )\ ENDFOR + $ "Grand Coulee.Storage" [@"t"] * "CumulDownstreamPowerCoeffApprox"( % "Wells", @"t" ) + $ "Chief Joseph.Storage" [@"t"] * "CumulDownstreamPowerCoeffApprox"( % "Wells", @"t" )} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {ScalarSlot} {Uncertainty Margin Parameter for Max Elev} set s "$o.Uncertainty Margin Parameter for Max Elev" "$s" order 4 "$s" userDescript {This parameter is basically a multiplier on the daily inflow volume estimate (CHJ discharge) that gets used in calculating the total margin volume across the five projects. When it is set to zero, then the margin volume is always calculated as zero. Then in the init rule that sets the individual reservoir margins (#20), it uses the max of the margin based on the margin volume, which is now 0, and the default of 0.2 ft. So it will always use the 0.2 ft.

Was 0.1, caused approx 1.08 ft of margin at t+72.
Changed to 0.4 2017-01-10 sjb to tighten up margins, resulted in approx 0.4 ft total margin

Changed to 0.0 on 2017-03-02 to make the pool elevation margin flat, otherwise too conservative.} "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Uncertainty Volume Convergence} set s "$o.Uncertainty Volume Convergence" "$s" order 8 "$s" units 8 {%f} 2 "$s" value 101.94064773120013 {m3} "$o" {ScalarSlot} {Uncertainty Margin Max Iterations} set s "$o.Uncertainty Margin Max Iterations" "$s" order 13 "$s" units 0 {%f} 2 "$s" value 100 {NONE} "$o" {TableSlot} {Spill Minimization Table} set s "$o.Spill Minimization Table" "$s" order 14 "$s" resize 56 5 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Wells} {Rocky Reach} {Rock Island} {Wanapum} {Priest Rapids} "$s" setMaximums NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN "$s" setUnits 15 15 15 15 15 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} "$s" row 0 1415.8423295999996 2548.5161932799992 1415.8423295999996 2831.6846591999993 3681.1900569599989 "$s" row 1 1274.2580966399996 2406.9319603199992 1274.2580966399996 2690.1004262399993 3681.1900569599989 "$s" row 2 1132.6738636799996 2265.3477273599992 1132.6738636799996 2548.5161932799992 3681.1900569599989 "$s" row 3 1132.6738636799996 2265.3477273599992 1132.6738636799996 2406.9319603199992 3681.1900569599989 "$s" row 4 1132.6738636799996 2265.3477273599992 1132.6738636799996 2265.3477273599992 3681.1900569599989 "$s" row 5 1132.6738636799996 2265.3477273599992 1132.6738636799996 2123.7634943999992 3681.1900569599989 "$s" row 6 1132.6738636799996 2265.3477273599992 1132.6738636799996 1982.1792614399994 3681.1900569599989 "$s" row 7 1132.6738636799996 2123.7634943999992 991.08963071999972 1982.1792614399994 3681.1900569599989 "$s" row 8 1132.6738636799996 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 9 991.08963071999972 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 10 849.50539775999982 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 11 849.50539775999982 1840.5950284799994 707.92116479999981 1840.5950284799994 3539.6058239999988 "$s" row 12 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3398.0215910399993 "$s" row 13 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3256.4373580799993 "$s" row 14 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3114.8531251199993 "$s" row 15 849.50539775999982 1557.4265625599996 566.33693183999981 1699.0107955199996 2973.2688921599993 "$s" row 16 849.50539775999982 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 17 707.92116479999981 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 18 566.33693183999981 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 19 566.33693183999981 1274.2580966399996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 20 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 21 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2690.1004262399993 "$s" row 22 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2548.5161932799992 "$s" row 23 566.33693183999981 991.08963071999972 566.33693183999981 1557.4265625599996 2548.5161932799992 "$s" row 24 566.33693183999981 849.50539775999982 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 25 566.33693183999981 707.92116479999981 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 26 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 27 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 2406.9319603199992 "$s" row 28 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 2265.3477273599992 "$s" row 29 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 2123.7634943999992 "$s" row 30 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 1982.1792614399994 "$s" row 31 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 1840.5950284799994 "$s" row 32 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 33 424.75269887999991 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 34 283.1684659199999 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 35 283.1684659199999 424.75269887999991 566.33693183999981 1274.2580966399996 1699.0107955199996 "$s" row 36 283.1684659199999 283.1684659199999 566.33693183999981 1132.6738636799996 1699.0107955199996 "$s" row 37 283.1684659199999 283.1684659199999 566.33693183999981 991.08963071999972 1699.0107955199996 "$s" row 38 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 1699.0107955199996 "$s" row 39 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 1557.4265625599996 "$s" row 40 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 1415.8423295999996 "$s" row 41 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 1274.2580966399996 "$s" row 42 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 1132.6738636799996 "$s" row 43 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 991.08963071999972 "$s" row 44 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 849.50539775999982 "$s" row 45 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 707.92116479999981 "$s" row 46 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 566.33693183999981 "$s" row 47 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 424.75269887999991 "$s" row 48 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 283.1684659199999 "$s" row 49 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 141.58423295999995 "$s" row 50 283.1684659199999 283.1684659199999 566.33693183999981 849.50539775999982 0 "$s" row 51 141.58423295999995 141.58423295999995 424.75269887999991 707.92116479999981 0 "$s" row 52 0 0 283.1684659199999 566.33693183999981 0 "$s" row 53 0 0 141.58423295999995 424.75269887999991 0 "$s" row 54 0 0 0 283.1684659199999 0 "$s" row 55 0 0 0 141.58423295999995 0 "$o" {SeriesSlot} {Outflow Average} set s "$o.Outflow Average" "$s" order 15 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax 0 14158.423295999995 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Summation Reward Table} set s "$o.Summation Reward Table" "$s" order 16 "$s" resize 11 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {} {} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 0 0 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 0 0 "$s" row 1 0.10000000000000001 0.19 "$s" row 2 0.20000000000000001 0.35999999999999999 "$s" row 3 0.29999999999999999 0.51000000000000001 "$s" row 4 0.40000000000000002 0.64000000000000001 "$s" row 5 0.5 0.75 "$s" row 6 0.59999999999999998 0.83999999999999997 "$s" row 7 0.69999999999999996 0.91000000000000003 "$s" row 8 0.80000000000000004 0.95999999999999996 "$s" row 9 0.90000000000000002 0.98999999999999999 "$s" row 10 1 1 "$o" {SeriesSlot} {Sideflow Forecast Daily Volume} set s "$o.Sideflow Forecast Daily Volume" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {CHJ Discharge Estimate Daily Volume} set s "$o.CHJ Discharge Estimate Daily Volume" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Inflow Forecast Total Daily Volume} set s "$o.Inflow Forecast Total Daily Volume" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Uncertainty Margin Volume for Max Elev} set s "$o.Uncertainty Margin Volume for Max Elev" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Max Elevation Margin} set s "$o.Max Elevation Margin" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Min Elevation Margin} set s "$o.Min Elevation Margin" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Efficiency Conversion Factor} set s "$o.Efficiency Conversion Factor" "$s" order 9 "$s" userDescript {The units on this value would be MW/(ft*kcfs). The units must be applied manually in RPL.} "$s" units 0 {%f} 2 "$s" value 0.084669999999999995 {NONE} "$o" {SeriesSlot} {HK Shaping Weight} set s "$o.HK Shaping Weight" "$s" order 10 "$s" userDescript {This slot gets used in the HK Objective to give a higher weight to H/K values at periods of higher generation (i.e. it is more important to maintain high H/K during periods of peak generation). It is roughly representative of the estimated Turibine Release of a single project (allocating Requests evenly based on estimated H/K to give an equal QT to all projects).} "$s" cvg 2 0.0001 "$s" unit 15 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Min Content Percent for Meeting Requests} set s "$o.Min Content Percent for Meeting Requests" "$s" order 11 "$s" units 0 {%f} 2 "$s" value 0.29999999999999999 {NONE} "$o" {ScalarSlot} {Max Available Storage} set s "$o.Max Available Storage" "$s" order 11 "$s" units 8 {%f} 2 "$s" value 431759419.40072495 {m3} "$o" {SeriesSlot} {Met Nonfed Request} set s "$o.Met Nonfed Request" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Met Nonfed Request Total Hours} set s "$o.Met Nonfed Request Total Hours" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {PeriodicSlot} {Desired Elevation Table} set s "$o.Desired Elevation Table" "$s" order 15 "$s" resize 24 5 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Wells} {Rocky Reach} {Rock Island} {Wanapum} {Priest Rapids} "$s" setMaximums NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN "$s" setUnits 2 2 2 2 2 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} "$s" row 0 237.83544000000023 215.24976000000024 186.6900000000002 173.88840000000019 148.43760000000015 "$s" row 1 237.86592000000024 215.28024000000022 186.6900000000002 173.85792000000018 148.43760000000015 "$s" row 2 237.89640000000026 215.31072000000023 186.6900000000002 173.85792000000018 148.43760000000015 "$s" row 3 237.89640000000026 215.34120000000021 186.6900000000002 173.85792000000018 148.43760000000015 "$s" row 4 237.89640000000026 215.34120000000021 186.6900000000002 173.88840000000019 148.43760000000015 "$s" row 5 237.86592000000024 215.31072000000023 186.6900000000002 173.9188800000002 148.46808000000016 "$s" row 6 237.83544000000023 215.28024000000022 186.6900000000002 173.94936000000018 148.49856000000014 "$s" row 7 237.80496000000028 215.24976000000024 186.6900000000002 173.97984000000017 148.52904000000015 "$s" row 8 237.77448000000027 215.21928000000023 186.6900000000002 174.01032000000018 148.55952000000016 "$s" row 9 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 10 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 11 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 12 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 13 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 14 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 15 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 16 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 17 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 18 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 19 237.74400000000026 215.18880000000021 186.6900000000002 174.04080000000019 148.59000000000015 "$s" row 20 237.74400000000026 215.18880000000021 186.6900000000002 174.01032000000018 148.55952000000016 "$s" row 21 237.74400000000026 215.18880000000021 186.6900000000002 173.97984000000017 148.52904000000015 "$s" row 22 237.77448000000027 215.18880000000021 186.6900000000002 173.94936000000018 148.49856000000014 "$s" row 23 237.80496000000028 215.21928000000023 186.6900000000002 173.9188800000002 148.46808000000016 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Reg 1 DAY 1900 1 HOUR "$o" {SeriesSlot} {Draft Percent without RIS} set s "$o.Draft Percent without RIS" "$s" order 16 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume} set s "$o.Draft Volume" "$s" order 17 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 1218832966.4685481 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Volume Less RIS} set s "$o.Draft Volume Less RIS" "$s" order 18 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax 0 1218832966.4685481 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Peak Valley} set s "$o.Peak Valley" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Draft Feet} set s "$o.Draft Feet" "$s" order 20 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax 0 9.4488000000000092 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Draft Feet Tolerance} set s "$o.Draft Feet Tolerance" "$s" order 21 "$s" units 2 {%f} 2 "$s" value 0 {m} "$o" {ScalarSlot} {Desired Elevation Tolerance} set s "$o.Desired Elevation Tolerance" "$s" order 22 "$s" units 2 {%f} 2 "$s" value 0.030480000000000031 {m} "$o" {ScalarSlot} {Equal Flows Tolerance} set s "$o.Equal Flows Tolerance" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 141.58423295999995 {cms} "$o" {SeriesSlot} {Energy In Storage Cumulative Baseline} set s "$o.Energy In Storage Cumulative Baseline" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {NonFederal Energy In Storage Cumulative} set s "$o.NonFederal Energy In Storage Cumulative" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Total Energy In Storage Cumulative} set s "$o.Total Energy In Storage Cumulative" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage} set s "$o.Energy In Storage" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Energy In Storage Baseline} set s "$o.Energy In Storage Baseline" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {RW Testing} set s "$o.RW Testing" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {RW Testing 2} set s "$o.RW Testing 2" "$s" order 27 "$s" cvg 2 0.0001 "$s" unit 2 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Operating Head Delta} set s "$o.Operating Head Delta" "$s" order 28 "$s" userDescript {This delta gets used in calculating differentials in max gen constraints (e.g. Nonfederal Special Operations Max Generation).} "$s" units 2 {%f} 2 "$s" value 0.30480000000000035 {m} "$o" {ScalarSlot} {Bias Nonfederal Max Capacity Buffer} set s "$o.Bias Nonfederal Max Capacity Buffer" "$s" order 29 "$s" units 29 {%f} 2 "$s" value 100 {MW} "$o" {ScalarSlot} {Bias Nonfederal Min Capacity Buffer} set s "$o.Bias Nonfederal Min Capacity Buffer" "$s" order 30 "$s" units 29 {%f} 2 "$s" value 100 {MW} "$o" {TableSlot} {Spill Minimization Table Condensed} set s "$o.Spill Minimization Table Condensed" "$s" order 31 "$s" resize 18 5 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Wells} {Rocky Reach} {Rock Island} {Wanapum} {Priest Rapids} "$s" setMaximums NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN "$s" setUnits 15 15 15 15 15 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} "$s" row 0 1415.8423295999996 2548.5161932799992 1415.8423295999996 2831.6846591999993 3681.1900569599989 "$s" row 1 1132.6738636799996 2265.3477273599992 1132.6738636799996 1982.1792614399994 3681.1900569599989 "$s" row 2 1132.6738636799996 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 3 849.50539775999982 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 4 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3398.0215910399993 "$s" row 5 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3114.8531251199993 "$s" row 6 849.50539775999982 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 7 566.33693183999981 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 8 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 9 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2548.5161932799992 "$s" row 10 566.33693183999981 849.50539775999982 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 11 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 12 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 13 283.1684659199999 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 14 283.1684659199999 0 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 15 283.1684659199999 0 566.33693183999981 1132.6738636799996 1699.0107955199996 "$s" row 16 283.1684659199999 0 566.33693183999981 849.50539775999982 1699.0107955199996 "$s" row 17 283.1684659199999 0 566.33693183999981 849.50539775999982 0 "$o" {ScalarSlot} {Uncertainty Margin Parameter for Min Elev} set s "$o.Uncertainty Margin Parameter for Min Elev" "$s" order 33 "$s" userDescript {This parameter is basically a multiplier on the daily inflow volume estimate (CHJ discharge) that gets used in calculating the total margin volume across the five projects. When it is set to zero, then the margin volume is always calculated as zero. Then in the init rule that sets the individual reservoir margins (#20), it uses the max of the margin based on the margin volume, which is now 0, and the default of 0.2 ft. So it will always use the 0.2 ft.

Was 0.1, caused approx 1.08 ft of margin at t+72.
Changed to 0.4 2017-01-10 sjb to tighten up margins, resulted in approx 0.4 ft total margin} "$s" units 0 {%f} 2 "$s" value 0.10000000000000001 {NONE} "$o" {ScalarSlot} {Max Elevation Margin Limit} set s "$o.Max Elevation Margin Limit" "$s" order 32 "$s" units 2 {%f} 2 "$s" value 0.12801600000000013 {m} "$o" {ScalarSlot} {Min Elevation Margin Limit} set s "$o.Min Elevation Margin Limit" "$s" order 33 "$s" units 2 {%f} 2 "$s" value 0.30480000000000035 {m} "$o" {SeriesSlot} {Uncertainty Margin Volume for Min Elev} set s "$o.Uncertainty Margin Volume for Min Elev" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Minimization Table No Fish Spill} set s "$o.Spill Minimization Table No Fish Spill" "$s" order 32 "$s" resize 12 5 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Wells} {Rocky Reach} {Rock Island} {Wanapum} {Priest Rapids} "$s" setMaximums NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN "$s" setUnits 15 15 15 15 15 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} "$s" row 0 2831.6846591999993 2831.6846591999993 2831.6846591999993 2831.6846591999993 2831.6846591999993 "$s" row 1 1699.0107955199996 2831.6846591999993 2831.6846591999993 2831.6846591999993 2831.6846591999993 "$s" row 2 1699.0107955199996 1699.0107955199996 2831.6846591999993 2831.6846591999993 2831.6846591999993 "$s" row 3 1699.0107955199996 1699.0107955199996 1699.0107955199996 2831.6846591999993 2831.6846591999993 "$s" row 4 1699.0107955199996 1699.0107955199996 1699.0107955199996 1699.0107955199996 2831.6846591999993 "$s" row 5 1132.6738636799996 1132.6738636799996 1699.0107955199996 1699.0107955199996 2831.6846591999993 "$s" row 6 1132.6738636799996 566.33693183999981 1699.0107955199996 1699.0107955199996 2831.6846591999993 "$s" row 7 0 566.33693183999981 1699.0107955199996 1699.0107955199996 2831.6846591999993 "$s" row 8 0 0 1699.0107955199996 1699.0107955199996 2831.6846591999993 "$s" row 9 0 0 0 1699.0107955199996 2831.6846591999993 "$s" row 10 0 0 0 0 2831.6846591999993 "$s" row 11 0 0 0 0 0 "$o" {TableSlot} {Spill Minimization Table Fish Spill Season} set s "$o.Spill Minimization Table Fish Spill Season" "$s" order 33 "$s" resize 26 5 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Wells} {Rocky Reach} {Rock Island} {Wanapum} {Priest Rapids} "$s" setMaximums NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN "$s" setUnits 15 15 15 15 15 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} "$s" row 0 1415.8423295999996 2548.5161932799992 1415.8423295999996 2831.6846591999993 3681.1900569599989 "$s" row 1 1132.6738636799996 2548.5161932799992 1415.8423295999996 2831.6846591999993 3681.1900569599989 "$s" row 2 1132.6738636799996 2265.3477273599992 1415.8423295999996 2831.6846591999993 3681.1900569599989 "$s" row 3 1132.6738636799996 2265.3477273599992 1132.6738636799996 2831.6846591999993 3681.1900569599989 "$s" row 4 1132.6738636799996 2265.3477273599992 1132.6738636799996 1982.1792614399994 3681.1900569599989 "$s" row 5 1132.6738636799996 1982.1792614399994 1132.6738636799996 1982.1792614399994 3681.1900569599989 "$s" row 6 1132.6738636799996 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 7 849.50539775999982 1982.1792614399994 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 8 849.50539775999982 1699.0107955199996 849.50539775999982 1982.1792614399994 3681.1900569599989 "$s" row 9 849.50539775999982 1699.0107955199996 566.33693183999981 1982.1792614399994 3681.1900569599989 "$s" row 10 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3681.1900569599989 "$s" row 11 849.50539775999982 1699.0107955199996 566.33693183999981 1699.0107955199996 3114.8531251199993 "$s" row 12 849.50539775999982 1415.8423295999996 566.33693183999981 1699.0107955199996 3114.8531251199993 "$s" row 13 849.50539775999982 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 14 566.33693183999981 1415.8423295999996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 15 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2831.6846591999993 "$s" row 16 566.33693183999981 1132.6738636799996 566.33693183999981 1699.0107955199996 2548.5161932799992 "$s" row 17 566.33693183999981 849.50539775999982 566.33693183999981 1699.0107955199996 2548.5161932799992 "$s" row 18 566.33693183999981 849.50539775999982 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 19 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 2548.5161932799992 "$s" row 20 566.33693183999981 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 21 0 566.33693183999981 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 22 0 0 566.33693183999981 1415.8423295999996 1699.0107955199996 "$s" row 23 0 0 0 1415.8423295999996 1699.0107955199996 "$s" row 24 0 0 0 0 1699.0107955199996 "$s" row 25 0 0 0 0 0 "$o" {ScalarSlot} {Spill Minimization RMM Threshold} set s "$o.Spill Minimization RMM Threshold" "$s" order 34 "$s" userDescript {If the number of timesteps in the block are greater than this threshold, then we use Summation with Reward Table rather than Repeated Maximin in order to reduce the potential run time from many iterations.} "$s" units 0 {%f} 2 "$s" value 3 {NONE} "$o" {ScalarSlot} {Content Target Min Default} set s "$o.Content Target Min Default" "$s" order 31 "$s" units 75 {%f} 2 "$s" value 0.84999999999999998 {decimal} "$o" {ScalarSlot} {Content Target Max Default} set s "$o.Content Target Max Default" "$s" order 32 "$s" units 75 {%f} 2 "$s" value 0.90000000000000002 {decimal} "$o" {SeriesSlot} {Content Target Min Import} set s "$o.Content Target Min Import" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Content Target Max Import} set s "$o.Content Target Max Import" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 75 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Content Available} set s "$o.Content Available" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 8 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {Spill Minimization Table No Fish Spill_Start Approx Apr 1 When Weather Warms Up} set s "$o.Spill Minimization Table No Fish Spill_Start Approx Apr 1 When Weather Warms Up" "$s" order 26 "$s" resize 16 5 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Wells} {Rocky Reach} {Rock Island} {Wanapum} {Priest Rapids} "$s" setMaximums NaN NaN NaN NaN NaN "$s" setMinimums NaN NaN NaN NaN NaN "$s" setUnits 15 15 15 15 15 "$s" setUsrFormat {%f} {%f} {%f} {%f} {%f} "$s" setUsrPrecision {2} {2} {2} {2} {2} "$s" row 0 2548.5161932799992 2548.5161932799992 2548.5161932799992 2548.5161932799992 2548.5161932799992 "$s" row 1 1699.0107955199996 2548.5161932799992 2548.5161932799992 2548.5161932799992 2548.5161932799992 "$s" row 2 1699.0107955199996 1699.0107955199996 2548.5161932799992 2548.5161932799992 2548.5161932799992 "$s" row 3 1699.0107955199996 1699.0107955199996 1699.0107955199996 2548.5161932799992 2548.5161932799992 "$s" row 4 1699.0107955199996 1699.0107955199996 1699.0107955199996 1699.0107955199996 2548.5161932799992 "$s" row 5 1699.0107955199996 1699.0107955199996 1699.0107955199996 1699.0107955199996 1699.0107955199996 "$s" row 6 849.50539775999982 1699.0107955199996 1699.0107955199996 1699.0107955199996 1699.0107955199996 "$s" row 7 849.50539775999982 849.50539775999982 1699.0107955199996 1699.0107955199996 1699.0107955199996 "$s" row 8 849.50539775999982 849.50539775999982 849.50539775999982 1699.0107955199996 1699.0107955199996 "$s" row 9 849.50539775999982 849.50539775999982 849.50539775999982 849.50539775999982 1699.0107955199996 "$s" row 10 849.50539775999982 849.50539775999982 849.50539775999982 849.50539775999982 849.50539775999982 "$s" row 11 0 849.50539775999982 849.50539775999982 849.50539775999982 849.50539775999982 "$s" row 12 0 0 849.50539775999982 849.50539775999982 849.50539775999982 "$s" row 13 0 0 0 849.50539775999982 849.50539775999982 "$s" row 14 0 0 0 0 849.50539775999982 "$s" row 15 0 0 0 0 0 "$o" {ScalarSlot} {Volume Change Per Timestep When Outside Margin} set s "$o.Volume Change Per Timestep When Outside Margin" "$s" order 26 "$s" units 15 {%f} 2 "$s" value 283.1684659199999 {cms} "$o" {SeriesSlot} {Spill Minimization Use Time Priority for Final Level Only} set s "$o.Spill Minimization Use Time Priority for Final Level Only" "$s" order 26 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Four Project Coordination} set s "$o.Four Project Coordination" "$s" order 26 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$s" isInteger "$o" {ScalarSlot} {Four Project Coordination Start Date} set s "$o.Four Project Coordination Start Date" "$s" order 27 "$s" units 85 {%f} 0 "$s" value 6862698000 {FullDateTime} "$o" SlotGroup {Pool Elev Margin} set sg "$o.Pool Elev Margin" "$sg" SlotGroup Order 23 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {CHJ Discharge Estimate Daily Volume} "$sg" SlotGroup LocalSlot 1 {Inflow Forecast Total Daily Volume} "$sg" SlotGroup LocalSlot 2 {Max Elevation Margin} "$sg" SlotGroup LocalSlot 3 {Min Elevation Margin} "$sg" SlotGroup LocalSlot 4 {Sideflow Forecast Daily Volume} "$sg" SlotGroup LocalSlot 5 {Uncertainty Margin Max Iterations} "$sg" SlotGroup LocalSlot 6 {Uncertainty Margin Parameter for Max Elev} "$sg" SlotGroup LocalSlot 7 {Uncertainty Margin Volume for Max Elev} "$sg" SlotGroup LocalSlot 8 {Uncertainty Volume Convergence} "$sg" SlotGroup LocalSlot 9 {Uncertainty Margin Parameter for Min Elev} "$sg" SlotGroup LocalSlot 10 {Min Elevation Margin Limit} "$sg" SlotGroup LocalSlot 11 {Max Elevation Margin Limit} "$sg" SlotGroup LocalSlot 12 {Uncertainty Margin Volume for Min Elev} "$sg" SlotGroup LocalSlot 13 {Volume Change Per Timestep When Outside Margin} "$o" SlotGroup {Baseline} set sg "$o.Baseline" "$sg" SlotGroup Order 25 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Energy In Storage Cumulative Baseline} "$sg" SlotGroup LocalSlot 1 {Energy In Storage Baseline} "$o" SlotGroup {Spill Sots} set sg "$o.Spill Sots" "$sg" SlotGroup Order 35 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Spill Minimization RMM Threshold} "$sg" SlotGroup LocalSlot 1 {Spill Minimization Table} "$sg" SlotGroup LocalSlot 2 {Spill Minimization Table Condensed} "$sg" SlotGroup LocalSlot 3 {Spill Minimization Table Fish Spill Season} "$sg" SlotGroup LocalSlot 4 {Spill Minimization Table No Fish Spill} "$sg" SlotGroup LocalSlot 5 {Spill Minimization Table No Fish Spill_Start Approx Apr 1 When Weather Warms Up} "$sg" SlotGroup LocalSlot 6 {Spill Minimization Use Time Priority for Final Level Only} "$o" SlotGroup {Content Target Slots} set sg "$o.Content Target Slots" "$sg" SlotGroup Order 36 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Content Target Max Default} "$sg" SlotGroup LocalSlot 1 {Content Target Max Import} "$sg" SlotGroup LocalSlot 2 {Content Target Min Default} "$sg" SlotGroup LocalSlot 3 {Content Target Min Import} "$sg" SlotGroup LocalSlot 4 {Content Available} "$sg" SlotGroup LocalSlot 5 {Min Content Percent for Meeting Requests} "$o" SlotGroup {Draft Policy Slots} set sg "$o.Draft Policy Slots" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Draft Feet} "$sg" SlotGroup LocalSlot 1 {Draft Feet Tolerance} "$sg" SlotGroup LocalSlot 2 {Draft Percent Tolerance} "$sg" SlotGroup LocalSlot 3 {Draft Percent without RIS} "$sg" SlotGroup LocalSlot 4 {Draft Volume} "$sg" SlotGroup LocalSlot 5 {Draft Volume Less RIS} "$o" hideSlots 34 hideOn hideEmptyOff "$o" hids {CJAD Draft1 Max} "$o" hids {CJAD Draft2 Max} "$o" hids {CJAD II Draft1 Max} "$o" hids {CJAD II Draft2 Max} "$o" hids {CJAD II Nonfed Remaining Draft Volume} "$o" hids {CJAD II Required Draft1 Volume} "$o" hids {CJAD II Required Draft2 Volume} "$o" hids {CJAD Nonfed Remaining Draft Volume} "$o" hids {CJAD Required Draft1 Volume} "$o" hids {CJAD Required Draft2 Volume} "$o" hids {Daily High Flow} "$o" hids {Daily Low Flow} "$o" hids {Desired Operating Elevation} "$o" hids {Elevation Max Controlling} "$o" hids {Elevation Min Controlling} "$o" hids {Fall Fish Spill Default} "$o" hids {Fall Fish Spill Manual} "$o" hids {Fall Fish Spill Season Default} "$o" hids {Fall Fish Spill Season Operations} "$o" hids {Flow Band Estimated Average Flow} "$o" hids {Flow Band Ranges} "$o" hids {Flow Bands} "$o" hids {Outflow Daily Target Default} "$o" hids {Outflow Daily Target Margin Default} "$o" hids {Recreation Weekend} "$o" hids {Recreation Weekend Min Elevation} "$o" hids {Special Operations Max 24 Hour Spill} "$o" hids {Special Operations Max Daily Spill} "$o" hids {Special Operations Outflow Daily Target} "$o" hids {Special Operations Outflow Daily Target Margin} "$o" hids {Summer Fish Spill Default} "$o" hids {Summer Fish Spill Manual} "$o" hids {Summer Fish Spill Season Default} "$o" hids {Summer Fish Spill Season Operations} set obj {Dates} set o "$ws.Dates" $ws SimObj $obj {DataObj} 771 1164 {} 1286 1186 988 377 "$o" geospatialCoords 0 0 988 377 "$o" objAttributes { \ } "$o" objOrd wsList 5050 "$o" objSlotOrderType ListOrder_OBJECT 0 Ascend "$o" {SeriesSlot} {Holiday} set s "$o.Holiday" "$s" order 0 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {PeriodicSlot} {Sunrise and Sunset Default} set s "$o.Sunrise and Sunset Default" "$s" order 1 "$s" userDescript {Updated 10-10-16 sjb from RLF Spreadsheet; implemented in the model by CADSWES} "$s" resize 66 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Sunrise Time} {Sunset Time} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 87 87 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 157700760.875 157742640.875 "$s" row 1 157701420.875 157742640.875 "$s" row 2 157701480.875 157743480.875 "$s" row 3 157701480.875 157743540.875 "$s" row 4 157701540.875 157743420.875 "$s" row 5 157701600.875 157743300.875 "$s" row 6 157701720.875 157743180.875 "$s" row 7 157701780.875 157743120.875 "$s" row 8 157701840.875 157743000.875 "$s" row 9 157701960.875 157742880.875 "$s" row 10 157702020.875 157742760.875 "$s" row 11 157702080.875 157742640.875 "$s" row 12 157702200.875 157742520.875 "$s" row 13 157702260.875 157742400.875 "$s" row 14 157702380.875 157742280.875 "$s" row 15 157702440.875 157742160.875 "$s" row 16 157702500.875 157742100.875 "$s" row 17 157702620.875 157741980.875 "$s" row 18 157702680.875 157741860.875 "$s" row 19 157702740.875 157741740.875 "$s" row 20 157702860.875 157741620.875 "$s" row 21 157702920.875 157741500.875 "$s" row 22 157703040.875 157741440.875 "$s" row 23 157703100.875 157741320.875 "$s" row 24 157703220.875 157741200.875 "$s" row 25 157703280.875 157741140.875 "$s" row 26 157703340.875 157741020.875 "$s" row 27 157703460.875 157740900.875 "$s" row 28 157703520.875 157740840.875 "$s" row 29 157703640.875 157740720.875 "$s" row 30 157703700.875 157740600.875 "$s" row 31 157703820.875 157740540.875 "$s" row 32 157703880.875 157740420.875 "$s" row 33 157704000.875 157740360.875 "$s" row 34 157704060.875 157740180.875 "$s" row 35 157704120.875 157740180.875 "$s" row 36 157704240.875 157740060.875 "$s" row 37 157704300.875 157740000.875 "$s" row 38 157704420.875 157739880.875 "$s" row 39 157704480.875 157739820.875 "$s" row 40 157704600.875 157739760.875 "$s" row 41 157704660.875 157739640.875 "$s" row 42 157704780.875 157739580.875 "$s" row 43 157704840.875 157739520.875 "$s" row 44 157704960.875 157739460.875 "$s" row 45 157705020.875 157739340.875 "$s" row 46 157705080.875 157739280.875 "$s" row 47 157705200.875 157739220.875 "$s" row 48 157705260.875 157739160.875 "$s" row 49 157705380.875 157739100.875 "$s" row 50 157705440.875 157739040.875 "$s" row 51 157705560.875 157738980.875 "$s" row 52 157705620.875 157738920.875 "$s" row 53 157705680.875 157738860.875 "$s" row 54 157705800.875 157738800.875 "$s" row 55 157705860.875 157738740.875 "$s" row 56 157705920.875 157738680.875 "$s" row 57 157706040.875 157738680.875 "$s" row 58 157706100.875 157738620.875 "$s" row 59 157706160.875 157738560.875 "$s" row 60 157706280.875 157738560.875 "$s" row 61 157706340.875 157738500.875 "$s" row 62 157706400.875 157738500.875 "$s" row 63 157706460.875 157738440.875 "$s" row 64 157706520.875 157738380.875 "$s" row 65 157700760.875 157738380.875 "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Irreg 1 YEAR 1900 66 0 1 1 0 0 0 29 9 0 23500800 0 30 9 0 23587200 0 1 10 0 23673600 0 2 10 0 23760000 0 3 10 0 23846400 0 4 10 0 23932800 0 5 10 0 24019200 0 6 10 0 24105600 0 7 10 0 24192000 0 8 10 0 24278400 0 9 10 0 24364800 0 10 10 0 24451200 0 11 10 0 24537600 0 12 10 0 24624000 0 13 10 0 24710400 0 14 10 0 24796800 0 15 10 0 24883200 0 16 10 0 24969600 0 17 10 0 25056000 0 18 10 0 25142400 0 19 10 0 25228800 0 20 10 0 25315200 0 21 10 0 25401600 0 22 10 0 25488000 0 23 10 0 25574400 0 24 10 0 25660800 0 25 10 0 25747200 0 26 10 0 25833600 0 27 10 0 25920000 0 28 10 0 26006400 0 29 10 0 26092800 0 30 10 0 26179200 0 31 10 0 26265600 0 1 11 0 26352000 0 2 11 0 26438400 0 3 11 0 26524800 0 4 11 0 26611200 0 5 11 0 26697600 0 6 11 0 26784000 0 7 11 0 26870400 0 8 11 0 26956800 0 9 11 0 27043200 0 10 11 0 27129600 0 11 11 0 27216000 0 12 11 0 27302400 0 13 11 0 27388800 0 14 11 0 27475200 0 15 11 0 27561600 0 16 11 0 27648000 0 17 11 0 27734400 0 18 11 0 27820800 0 19 11 0 27907200 0 20 11 0 27993600 0 21 11 0 28080000 0 22 11 0 28166400 0 23 11 0 28252800 0 24 11 0 28339200 0 25 11 0 28425600 0 26 11 0 28512000 0 27 11 0 28598400 0 28 11 0 28684800 0 29 11 0 28771200 0 30 11 0 28857600 0 1 12 0 28944000 0 31 12 0 31536000 "$o" {PeriodicSlot} {Sunrise and Sunset Operations} set s "$o.Sunrise and Sunset Operations" "$s" order 2 "$s" resize 65 2 "$s" setRowLabels {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} {} "$s" setColumnLabels {Sunrise Time} {Sunset Time} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 87 87 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row -1 NaN "$s" columnGuiEditEnabled 0 "$s" defaultAccessMethod 1 "$s" rowMap2 Irreg 1 YEAR 1900 65 0 1 1 0 0 0 5 1 0 345600 0 30 9 0 23587200 0 1 10 0 23673600 0 2 10 0 23760000 0 3 10 0 23846400 0 4 10 0 23932800 0 5 10 0 24019200 0 6 10 0 24105600 0 7 10 0 24192000 0 8 10 0 24278400 0 9 10 0 24364800 0 10 10 0 24451200 0 11 10 0 24537600 0 12 10 0 24624000 0 13 10 0 24710400 0 14 10 0 24796800 0 15 10 0 24883200 0 16 10 0 24969600 0 17 10 0 25056000 0 18 10 0 25142400 0 19 10 0 25228800 0 20 10 0 25315200 0 21 10 0 25401600 0 22 10 0 25488000 0 23 10 0 25574400 0 24 10 0 25660800 0 25 10 0 25747200 0 26 10 0 25833600 0 27 10 0 25920000 0 28 10 0 26006400 0 29 10 0 26092800 0 30 10 0 26179200 0 31 10 0 26265600 0 1 11 0 26352000 0 2 11 0 26438400 0 3 11 0 26524800 0 4 11 0 26611200 0 5 11 0 26697600 0 6 11 0 26784000 0 7 11 0 26870400 0 8 11 0 26956800 0 9 11 0 27043200 0 10 11 0 27129600 0 11 11 0 27216000 0 12 11 0 27302400 0 13 11 0 27388800 0 14 11 0 27475200 0 15 11 0 27561600 0 16 11 0 27648000 0 17 11 0 27734400 0 18 11 0 27820800 0 19 11 0 27907200 0 20 11 0 27993600 0 21 11 0 28080000 0 22 11 0 28166400 0 23 11 0 28252800 0 24 11 0 28339200 0 25 11 0 28425600 0 26 11 0 28512000 0 27 11 0 28598400 0 28 11 0 28684800 0 29 11 0 28771200 0 30 11 0 28857600 0 1 12 0 28944000 "$o" {TableSlot} {Rearing Period Operations} set s "$o.Rearing Period Operations" "$s" order 12 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 132195600.5 "$s" row 1 140572800.5 "$o" {TableSlot} {Rearing Period Default} set s "$o.Rearing Period Default" "$s" order 13 "$s" userDescript {Sets the default active season for Spawning Period from March 15 through JUne 15 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason function and can be overridden if values are entered in the Rearing Period Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 132541200.5 "$s" row 1 140572800.5 "$o" {TableSlot} {Spawning Period Default} set s "$o.Spawning Period Default" "$s" order 5 "$s" userDescript {Sets the default active season for Spawning Period from October 15 to November 22 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Spawning Period Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 151030800.5 "$s" row 1 154569600.5 "$o" {TableSlot} {Spawning Period Operations} set s "$o.Spawning Period Operations" "$s" order 6 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 151030800.5 "$s" row 1 154224000.5 "$o" {TableSlot} {Emergence Period Default} set s "$o.Emergence Period Default" "$s" order 14 "$s" userDescript {Sets the default active season for PostHatch Period from March 15 through May 14 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the Emergence Period Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 132541200.5 "$s" row 1 137808000.5 "$o" {TableSlot} {PostHatch Period Default} set s "$o.PostHatch Period Default" "$s" order 7 "$s" userDescript {Sets the default active season for PostHatch Period from December 15 through March 14 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the PostHatch Period Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 156301200.5 "$s" row 1 132537600.5 "$o" {TableSlot} {PreHatch Period Default} set s "$o.PreHatch Period Default" "$s" order 3 "$s" userDescript {Sets the default active season for PreHatch Period from October 15 through December 14 (based on MID-C Operations Annual Timeline 2010-2011.xls). These values are accessed by the ActiveSeason functions and can be overridden if values are entered in the PreHatch Period Operations slot.} "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 151030800.5 "$s" row 1 156384000.5 "$o" {TableSlot} {PreHatch Period Operations} set s "$o.PreHatch Period Operations" "$s" order 4 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 151030800.5 "$s" row 1 155088000.5 "$o" {TableSlot} {PostHatch Period Operations} set s "$o.PostHatch Period Operations" "$s" order 8 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 155091600.5 "$s" row 1 132192000.5 "$o" {TableSlot} {Emergence Period Operations} set s "$o.Emergence Period Operations" "$s" order 15 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 132195600.5 "$s" row 1 137808000.5 "$o" {TableSlot} {PostHatch 36 to 50 kcfs Period Operations} set s "$o.PostHatch 36 to 50 kcfs Period Operations" "$s" order 9 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {Emergence 36 to 50 kcfs Period Operations} set s "$o.Emergence 36 to 50 kcfs Period Operations" "$s" order 16 "$s" resize 2 1 "$s" setRowLabels {Start Date} {End Date} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {TableSlot} {CJAD Period Default} set s "$o.CJAD Period Default" "$s" order 10 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 156301200.5 "$s" row 1 135302400.5 "$o" {TableSlot} {CJAD II Period Default} set s "$o.CJAD II Period Default" "$s" order 17 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135306000.5 "$s" row 1 137808000.5 "$o" {TableSlot} {CJAD Period Operations} set s "$o.CJAD Period Operations" "$s" order 11 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 155091600.5 "$s" row 1 135302400.5 "$o" {TableSlot} {CJAD II Period Operations} set s "$o.CJAD II Period Operations" "$s" order 18 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 135306000.5 "$s" row 1 137808000.5 "$o" {TableSlot} {Spill Period Default} set s "$o.Spill Period Default" "$s" order 19 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 134010000.5 "$s" row 1 147225600.5 "$o" {TableSlot} {Spill Period Operations} set s "$o.Spill Period Operations" "$s" order 20 "$s" resize 2 1 "$s" setRowLabels {} {} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 90 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row -1 NaN "$o" {AggSeriesSlot} {Operational Season Dates} set s "$o.Operational Season Dates" "$s" order 22 "$s" userDescript {1 = Spawning Period
2 = PreHatch Period
3 = PostHatch Period
4 = Emergence Period
5 = Rearing Period
6 = CJAD Period
7 = CJAD II Period
8 = Wells Summer Fish Spill
9 = Rocky Reach Summer Fish Spill
10 = Rock Island Spring Fish Spill
11 = Rock Island Summer Fish Spill
12 = Wanapum Summer Fish Spill
13 = Wanapum Fall Fish Spill
14 = Priest Rapids Summer Fish Spill
15 = Priest Rapids Summer Fish Spill} "$s" cvg 2 0.0001 "$s" unit 86 {%f} 0 "$s" minMax NaN NaN "$s" usersIndexByInt "$s" setFSeries {FullDateTime} {01-01-1800 00:00:00} {01-01-1800 00:00:00} 1 HOUR -1 2 "$s" setDSeries {FullDateTime} {01-01-1800 00:00:00} {01-01-1800 00:00:00} 1 HOUR -1 NaN "$s" setAggLabel {Start} "$s" AggSubSlot {Operational Season Dates.End} "$o" set s "$o.Operational Season Dates.End" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 86 {%f} 0 "$s" minMax NaN NaN "$s" usersIndexByInt "$s" setFSeries {FullDateTime} {01-01-1800 00:00:00} {01-01-1800 00:00:00} 1 HOUR -1 2 "$s" setDSeries {FullDateTime} {01-01-1800 00:00:00} {01-01-1800 00:00:00} 1 HOUR -1 NaN "$o" hideSlots 0 hideOff hideEmptyOff set obj {Wells Data Validation} set o "$ws.Wells Data Validation" $ws SimObj $obj {DataObj} 336 1373 {Cyan} 786 1760 322 951 "$o" geospatialCoords 0 0 322 951 "$o" objAttributes { \ } "$o" objOrd wsList 5537 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Okanogan River Inflow} set s "$o.Okanogan River Inflow" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Methow River Inflow} set s "$o.Methow River Inflow" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Methow River Inflow Failure Count} set s "$o.Methow River Inflow Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Okanogan River Inflow Failure Count} set s "$o.Okanogan River Inflow Failure Count" "$s" order 18 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 20 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 17 "$s" units 29 {%f} 2 "$s" value 1050 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 18 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 19 "$s" units 29 {%f} 2 "$s" value 1050 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 20 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 19 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 17 "$s" units 2 {%f} 2 "$s" value 238.04880000000026 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 18 "$s" units 2 {%f} 2 "$s" value 235.00080000000025 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 19 "$s" units 2 {%f} 2 "$s" value 238.04880000000026 {m} "$o" {ScalarSlot} {Special Operations Max Spill Max} set s "$o.Special Operations Max Spill Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Spill Min} set s "$o.Special Operations Max Spill Min" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Max} set s "$o.Special Operations Min Spill Max" "$s" order 19 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Min} set s "$o.Special Operations Min Spill Min" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 17 "$s" units 2 {%f} 2 "$s" value 225.55200000000025 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 18 "$s" units 2 {%f} 2 "$s" value 213.36000000000021 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 19 "$s" units 2 {%f} 2 "$s" value 225.55200000000025 {m} "$o" {ScalarSlot} {Special Operations Max Turbine Release Max} set s "$o.Special Operations Max Turbine Release Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Max Turbine Release Min} set s "$o.Special Operations Max Turbine Release Min" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Max} set s "$o.Special Operations Min Turbine Release Max" "$s" order 19 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Min} set s "$o.Special Operations Min Turbine Release Min" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 10 "$s" units 15 {%f} 2 "$s" value -707.92116479999981 {cms} "$o" {ScalarSlot} {Methow River Inflow Max} set s "$o.Methow River Inflow Max" "$s" order 10 "$s" units 15 {%f} 2 "$s" value 849.50539775999982 {cms} "$o" {ScalarSlot} {Methow River Inflow Min} set s "$o.Methow River Inflow Min" "$s" order 11 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Okanogan River Inflow Max} set s "$o.Okanogan River Inflow Max" "$s" order 10 "$s" units 15 {%f} 2 "$s" value 1415.8423295999996 {cms} "$o" {ScalarSlot} {Okanogan River Inflow Min} set s "$o.Okanogan River Inflow Min" "$s" order 11 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 10 "$s" units 2 {%f} 2 "$s" value 235.00080000000025 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 10 "$s" units 2 {%f} 2 "$s" value 213.36000000000021 {m} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Generation Max} set s "$o.Special Operations Soft Max Generation Max" "$s" order 52 "$s" units 29 {%f} 2 "$s" value 1050 {MW} "$o" {ScalarSlot} {Special Operations Soft Max Generation Min} set s "$o.Special Operations Soft Max Generation Min" "$s" order 53 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Generation Max} set s "$o.Special Operations Soft Min Generation Max" "$s" order 55 "$s" units 29 {%f} 2 "$s" value 1050 {MW} "$o" {ScalarSlot} {Special Operations Soft Min Generation Min} set s "$o.Special Operations Soft Min Generation Min" "$s" order 56 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Outflow Max} set s "$o.Special Operations Soft Max Outflow Max" "$s" order 58 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Min} set s "$o.Special Operations Soft Max Outflow Min" "$s" order 59 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Outflow Max} set s "$o.Special Operations Soft Min Outflow Max" "$s" order 61 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Min} set s "$o.Special Operations Soft Min Outflow Min" "$s" order 62 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Max} set s "$o.Special Operations Soft Max Pool Elevation Max" "$s" order 64 "$s" units 2 {%f} 2 "$s" value 238.04880000000026 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Min} set s "$o.Special Operations Soft Max Pool Elevation Min" "$s" order 65 "$s" units 2 {%f} 2 "$s" value 235.00080000000025 {m} "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 66 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Max} set s "$o.Special Operations Soft Min Pool Elevation Max" "$s" order 67 "$s" units 2 {%f} 2 "$s" value 238.04880000000026 {m} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Min} set s "$o.Special Operations Soft Min Pool Elevation Min" "$s" order 68 "$s" units 2 {%f} 2 "$s" value 235.00080000000025 {m} "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Spill Max} set s "$o.Special Operations Soft Max Spill Max" "$s" order 70 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Spill Min} set s "$o.Special Operations Soft Max Spill Min" "$s" order 71 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 72 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Spill Max} set s "$o.Special Operations Soft Min Spill Max" "$s" order 73 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Spill Min} set s "$o.Special Operations Soft Min Spill Min" "$s" order 74 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 75 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Max} set s "$o.Special Operations Soft Max Tailwater Elev Max" "$s" order 76 "$s" units 2 {%f} 2 "$s" value 225.55200000000025 {m} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Min} set s "$o.Special Operations Soft Max Tailwater Elev Min" "$s" order 77 "$s" units 2 {%f} 2 "$s" value 213.36000000000021 {m} "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 78 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Max} set s "$o.Special Operations Soft Min Tailwater Elev Max" "$s" order 79 "$s" units 2 {%f} 2 "$s" value 225.55200000000025 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Min} set s "$o.Special Operations Soft Min Tailwater Elev Min" "$s" order 80 "$s" units 2 {%f} 2 "$s" value 213.36000000000021 {m} "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 81 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Max} set s "$o.Special Operations Soft Max Turbine Release Max" "$s" order 82 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Min} set s "$o.Special Operations Soft Max Turbine Release Min" "$s" order 83 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 84 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Max} set s "$o.Special Operations Soft Min Turbine Release Max" "$s" order 85 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Min} set s "$o.Special Operations Soft Min Turbine Release Min" "$s" order 86 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Spill Failure Count} set s "$o.Special Operations Max Spill Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Spill Failure Count} set s "$o.Special Operations Min Spill Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Turbine Release Failure Count} set s "$o.Special Operations Max Turbine Release Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Turbine Release Failure Count} set s "$o.Special Operations Min Turbine Release Failure Count" "$s" order 23 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 25 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Generation Failure Count} set s "$o.Special Operations Soft Max Generation Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Failure Count} set s "$o.Special Operations Soft Max Outflow Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Spill Failure Count} set s "$o.Special Operations Soft Max Spill Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Failure Count} set s "$o.Special Operations Soft Max Tailwater Elev Failure Count" "$s" order 25 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Failure Count} set s "$o.Special Operations Soft Max Turbine Release Failure Count" "$s" order 23 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Generation Failure Count} set s "$o.Special Operations Soft Min Generation Failure Count" "$s" order 31 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Failure Count} set s "$o.Special Operations Soft Min Outflow Failure Count" "$s" order 32 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Spill Failure Count} set s "$o.Special Operations Soft Min Spill Failure Count" "$s" order 33 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Failure Count} set s "$o.Special Operations Soft Min Tailwater Elev Failure Count" "$s" order 34 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Failure Count} set s "$o.Special Operations Soft Min Turbine Release Failure Count" "$s" order 35 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Failure Count} set s "$o.Special Operations Soft Max Pool Elevation Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Failure Count} set s "$o.Special Operations Soft Min Pool Elevation Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 109 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 110 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 111 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 112 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Fish Spill Manual Max} set s "$o.Fish Spill Manual Max" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Fish Spill Manual Min} set s "$o.Fish Spill Manual Min" "$s" order 22 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Fish Spill Manual Failure Count} set s "$o.Fish Spill Manual Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 117 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 118 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 119 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 120 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 121 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 122 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 123 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 124 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 125 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 126 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 127 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 128 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 21 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 1 {Methow River Inflow Failure Count} "$sg" SlotGroup LocalSlot 2 {Okanogan River Inflow Failure Count} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Spill Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Spill Failure Count} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 15 {Special Operations Soft Max Generation Failure Count} "$sg" SlotGroup LocalSlot 16 {Special Operations Soft Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 17 {Special Operations Soft Max Spill Failure Count} "$sg" SlotGroup LocalSlot 18 {Special Operations Soft Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 19 {Special Operations Soft Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 20 {Special Operations Soft Min Generation Failure Count} "$sg" SlotGroup LocalSlot 21 {Special Operations Soft Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 22 {Special Operations Soft Min Spill Failure Count} "$sg" SlotGroup LocalSlot 23 {Special Operations Soft Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 24 {Special Operations Soft Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 25 {Special Operations Soft Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 26 {Special Operations Soft Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 27 {Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 28 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 29 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 30 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 31 {Regulated Spill Failure Count} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 23 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 18 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 25 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$o" SlotGroup {Special Operations Spill} set sg "$o.Special Operations Spill" "$sg" SlotGroup Order 20 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Spill Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Spill Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Spill Min} "$o" SlotGroup {Special Operations Turbine Release} set sg "$o.Special Operations Turbine Release" "$sg" SlotGroup Order 21 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Turbine Release Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Turbine Release Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Turbine Release Min} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 18 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 18 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust Min} "$o" SlotGroup {Side Inflows} set sg "$o.Side Inflows" "$sg" SlotGroup Order 19 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Methow River Inflow} "$sg" SlotGroup LocalSlot 1 {Okanogan River Inflow} "$sg" SlotGroup LocalSlot 2 {Methow River Inflow Max} "$sg" SlotGroup LocalSlot 3 {Methow River Inflow Min} "$sg" SlotGroup LocalSlot 4 {Okanogan River Inflow Max} "$sg" SlotGroup LocalSlot 5 {Okanogan River Inflow Min} "$o" SlotGroup {Special Operations Soft Generation} set sg "$o.Special Operations Soft Generation" "$sg" SlotGroup Order 46 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Generation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Generation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation Min} "$o" SlotGroup {Special Operations Soft Outflow} set sg "$o.Special Operations Soft Outflow" "$sg" SlotGroup Order 41 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Outflow Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Outflow Min} "$o" SlotGroup {Special Operations Soft Pool Elevations} set sg "$o.Special Operations Soft Pool Elevations" "$sg" SlotGroup Order 36 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Pool Elevation Min} "$o" SlotGroup {Special Operations Soft Spill} set sg "$o.Special Operations Soft Spill" "$sg" SlotGroup Order 31 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Spill Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Spill Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Spill Min} "$o" SlotGroup {Special Operations Soft Tailwater Elev} set sg "$o.Special Operations Soft Tailwater Elev" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Soft Turbine Release} set sg "$o.Special Operations Soft Turbine Release" "$sg" SlotGroup Order 21 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Turbine Release Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Turbine Release Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Turbine Release Min} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 20 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Fish Spill} set sg "$o.Fish Spill" "$sg" SlotGroup Order 18 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 2 {Fish Spill Manual Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 28 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Rocky Reach Data Validation} set o "$ws.Rocky Reach Data Validation" $ws SimObj $obj {DataObj} 275 1204 {Cyan} 724 1594 260 785 "$o" geospatialCoords 0 0 260 785 "$o" objAttributes { \ } "$o" objOrd wsList 5538 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 10 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 13 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Chelan River Inflow} set s "$o.Chelan River Inflow" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Entiat River Inflow} set s "$o.Entiat River Inflow" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Chelan River Inflow Max} set s "$o.Chelan River Inflow Max" "$s" order 15 "$s" units 15 {%f} 2 "$s" value 566.33693183999981 {cms} "$o" {ScalarSlot} {Chelan River Inflow Min} set s "$o.Chelan River Inflow Min" "$s" order 16 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Entiat River Inflow Max} set s "$o.Entiat River Inflow Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 283.1684659199999 {cms} "$o" {ScalarSlot} {Entiat River Inflow Min} set s "$o.Entiat River Inflow Min" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 21 "$s" units 29 {%f} 2 "$s" value 1450 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 22 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 23 "$s" units 29 {%f} 2 "$s" value 1450 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 24 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 27 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 28 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 29 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 30 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Spill Max} set s "$o.Special Operations Max Spill Max" "$s" order 33 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Spill Min} set s "$o.Special Operations Max Spill Min" "$s" order 34 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Max} set s "$o.Special Operations Min Spill Max" "$s" order 35 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Min} set s "$o.Special Operations Min Spill Min" "$s" order 36 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Turbine Release Max} set s "$o.Special Operations Max Turbine Release Max" "$s" order 45 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Max Turbine Release Min} set s "$o.Special Operations Max Turbine Release Min" "$s" order 46 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Max} set s "$o.Special Operations Min Turbine Release Max" "$s" order 47 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Min} set s "$o.Special Operations Min Turbine Release Min" "$s" order 48 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 2 "$s" units 2 {%f} 2 "$s" value 215.49360000000021 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 3 "$s" units 2 {%f} 2 "$s" value 214.27440000000021 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 5 "$s" units 2 {%f} 2 "$s" value 215.49360000000021 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 6 "$s" units 2 {%f} 2 "$s" value 214.27440000000021 {m} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 8 "$s" units 15 {%f} 2 "$s" value 707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 9 "$s" units 15 {%f} 2 "$s" value -707.92116479999981 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Generation Max} set s "$o.Special Operations Soft Max Generation Max" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 1450 {MW} "$o" {ScalarSlot} {Special Operations Soft Max Generation Min} set s "$o.Special Operations Soft Max Generation Min" "$s" order 13 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Soft Min Generation Max} set s "$o.Special Operations Soft Min Generation Max" "$s" order 14 "$s" units 29 {%f} 2 "$s" value 1450 {MW} "$o" {ScalarSlot} {Special Operations Soft Min Generation Min} set s "$o.Special Operations Soft Min Generation Min" "$s" order 15 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Outflow Max} set s "$o.Special Operations Soft Max Outflow Max" "$s" order 12 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Min} set s "$o.Special Operations Soft Max Outflow Min" "$s" order 13 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Max} set s "$o.Special Operations Soft Min Outflow Max" "$s" order 14 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Min} set s "$o.Special Operations Soft Min Outflow Min" "$s" order 15 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Max} set s "$o.Special Operations Soft Max Pool Elevation Max" "$s" order 12 "$s" units 2 {%f} 2 "$s" value 215.49360000000021 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Min} set s "$o.Special Operations Soft Max Pool Elevation Min" "$s" order 13 "$s" units 2 {%f} 2 "$s" value 214.27440000000021 {m} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Max} set s "$o.Special Operations Soft Min Pool Elevation Max" "$s" order 14 "$s" units 2 {%f} 2 "$s" value 215.49360000000021 {m} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Min} set s "$o.Special Operations Soft Min Pool Elevation Min" "$s" order 15 "$s" units 2 {%f} 2 "$s" value 214.27440000000021 {m} "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Spill Max} set s "$o.Special Operations Soft Max Spill Max" "$s" order 12 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Spill Min} set s "$o.Special Operations Soft Max Spill Min" "$s" order 13 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Spill Max} set s "$o.Special Operations Soft Min Spill Max" "$s" order 14 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Spill Min} set s "$o.Special Operations Soft Min Spill Min" "$s" order 15 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Max} set s "$o.Special Operations Soft Max Turbine Release Max" "$s" order 12 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Min} set s "$o.Special Operations Soft Max Turbine Release Min" "$s" order 13 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Max} set s "$o.Special Operations Soft Min Turbine Release Max" "$s" order 14 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Min} set s "$o.Special Operations Soft Min Turbine Release Min" "$s" order 15 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Max} set s "$o.Special Operations Soft Max Tailwater Elev Max" "$s" order 85 "$s" units 2 {%f} 2 "$s" value 196.5960000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Min} set s "$o.Special Operations Soft Max Tailwater Elev Min" "$s" order 86 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Max} set s "$o.Special Operations Soft Min Tailwater Elev Max" "$s" order 87 "$s" units 2 {%f} 2 "$s" value 195.0720000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Min} set s "$o.Special Operations Soft Min Tailwater Elev Min" "$s" order 88 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 89 "$s" units 2 {%f} 2 "$s" value 196.5960000000002 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 90 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 91 "$s" units 2 {%f} 2 "$s" value 196.5960000000002 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 92 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Chelan River Inflow Failure Count} set s "$o.Chelan River Inflow Failure Count" "$s" order 85 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Entiat River Inflow Failure Count} set s "$o.Entiat River Inflow Failure Count" "$s" order 86 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 87 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 88 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Spill Failure Count} set s "$o.Special Operations Max Spill Failure Count" "$s" order 89 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 90 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Turbine Release Failure Count} set s "$o.Special Operations Max Turbine Release Failure Count" "$s" order 91 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 92 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 93 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Spill Failure Count} set s "$o.Special Operations Min Spill Failure Count" "$s" order 94 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 95 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Turbine Release Failure Count} set s "$o.Special Operations Min Turbine Release Failure Count" "$s" order 96 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Generation Failure Count} set s "$o.Special Operations Soft Max Generation Failure Count" "$s" order 97 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Failure Count} set s "$o.Special Operations Soft Max Outflow Failure Count" "$s" order 98 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Spill Failure Count} set s "$o.Special Operations Soft Max Spill Failure Count" "$s" order 99 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Failure Count} set s "$o.Special Operations Soft Max Tailwater Elev Failure Count" "$s" order 100 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Failure Count} set s "$o.Special Operations Soft Max Turbine Release Failure Count" "$s" order 101 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Generation Failure Count} set s "$o.Special Operations Soft Min Generation Failure Count" "$s" order 102 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Failure Count} set s "$o.Special Operations Soft Min Outflow Failure Count" "$s" order 103 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Spill Failure Count} set s "$o.Special Operations Soft Min Spill Failure Count" "$s" order 104 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Failure Count} set s "$o.Special Operations Soft Min Tailwater Elev Failure Count" "$s" order 105 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Failure Count} set s "$o.Special Operations Soft Min Turbine Release Failure Count" "$s" order 106 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Failure Count} set s "$o.Special Operations Soft Max Pool Elevation Failure Count" "$s" order 107 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Failure Count} set s "$o.Special Operations Soft Min Pool Elevation Failure Count" "$s" order 108 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 109 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 110 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 111 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 112 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 113 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Fish Spill Manual Max} set s "$o.Fish Spill Manual Max" "$s" order 114 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Fish Spill Manual Min} set s "$o.Fish Spill Manual Min" "$s" order 115 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Fish Spill Manual Failure Count} set s "$o.Fish Spill Manual Failure Count" "$s" order 18 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 117 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 118 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 119 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 120 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 121 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 122 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 123 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 124 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 125 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 126 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 127 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 128 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 15 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 2 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 3 {Chelan River Inflow Failure Count} "$sg" SlotGroup LocalSlot 4 {Entiat River Inflow Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Spill Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Spill Failure Count} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 15 {Special Operations Soft Max Generation Failure Count} "$sg" SlotGroup LocalSlot 16 {Special Operations Soft Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 17 {Special Operations Soft Max Spill Failure Count} "$sg" SlotGroup LocalSlot 18 {Special Operations Soft Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 19 {Special Operations Soft Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 20 {Special Operations Soft Min Generation Failure Count} "$sg" SlotGroup LocalSlot 21 {Special Operations Soft Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 22 {Special Operations Soft Min Spill Failure Count} "$sg" SlotGroup LocalSlot 23 {Special Operations Soft Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 24 {Special Operations Soft Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 25 {Special Operations Soft Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 26 {Special Operations Soft Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 27 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 28 {Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 29 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 30 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 31 {Regulated Spill Failure Count} "$o" SlotGroup {Side Inflows} set sg "$o.Side Inflows" "$sg" SlotGroup Order 47 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Chelan River Inflow} "$sg" SlotGroup LocalSlot 1 {Entiat River Inflow} "$sg" SlotGroup LocalSlot 2 {Chelan River Inflow Max} "$sg" SlotGroup LocalSlot 3 {Chelan River Inflow Min} "$sg" SlotGroup LocalSlot 4 {Entiat River Inflow Max} "$sg" SlotGroup LocalSlot 5 {Entiat River Inflow Min} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 42 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 37 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$o" SlotGroup {Special Operations Spill} set sg "$o.Special Operations Spill" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Spill Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Spill Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Spill Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 22 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Turbine Release} set sg "$o.Special Operations Turbine Release" "$sg" SlotGroup Order 17 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Turbine Release Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Turbine Release Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Turbine Release Min} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 10 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Min} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust} "$o" SlotGroup {Special Operations Soft Generation} set sg "$o.Special Operations Soft Generation" "$sg" SlotGroup Order 22 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Generation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Generation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation Min} "$o" SlotGroup {Special Operations Soft Outflow} set sg "$o.Special Operations Soft Outflow" "$sg" SlotGroup Order 23 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Outflow Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Outflow Min} "$o" SlotGroup {Special Operations Soft Pool Elevations} set sg "$o.Special Operations Soft Pool Elevations" "$sg" SlotGroup Order 24 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Pool Elevation Min} "$o" SlotGroup {Special Operations Soft Spill} set sg "$o.Special Operations Soft Spill" "$sg" SlotGroup Order 25 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Spill Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Spill Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Spill Min} "$o" SlotGroup {Special Operations Soft Tailwater Elev} set sg "$o.Special Operations Soft Tailwater Elev" "$sg" SlotGroup Order 34 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Soft Turbine Release} set sg "$o.Special Operations Soft Turbine Release" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Turbine Release Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Turbine Release Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Turbine Release Min} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 24 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Fish Spill} set sg "$o.Fish Spill" "$sg" SlotGroup Order 22 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 2 {Fish Spill Manual Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 28 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Rock Island Data Validation} set o "$ws.Rock Island Data Validation" $ws SimObj $obj {DataObj} 316 1065 {Cyan} 746 1450 282 641 "$o" geospatialCoords 0 0 282 641 "$o" objAttributes { \ } "$o" objOrd wsList 5539 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 10 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 11 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 12 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 8 "$s" units 15 {%f} 2 "$s" value 707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 9 "$s" units 15 {%f} 2 "$s" value -707.92116479999981 {cms} "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wenatchee River Inflow} set s "$o.Wenatchee River Inflow" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Wenatchee River Inflow Max} set s "$o.Wenatchee River Inflow Max" "$s" order 9 "$s" units 15 {%f} 2 "$s" value 1274.2580966399996 {cms} "$o" {ScalarSlot} {Wenatchee River Inflow Min} set s "$o.Wenatchee River Inflow Min" "$s" order 10 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 15 "$s" units 29 {%f} 2 "$s" value 825 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 16 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 17 "$s" units 29 {%f} 2 "$s" value 825 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 18 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 22 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 24 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 2 "$s" units 2 {%f} 2 "$s" value 186.8424000000002 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 3 "$s" units 2 {%f} 2 "$s" value 185.6232000000002 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 5 "$s" units 2 {%f} 2 "$s" value 186.8424000000002 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 6 "$s" units 2 {%f} 2 "$s" value 185.6232000000002 {m} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Spill Max} set s "$o.Special Operations Max Spill Max" "$s" order 33 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Spill Min} set s "$o.Special Operations Max Spill Min" "$s" order 34 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Max} set s "$o.Special Operations Min Spill Max" "$s" order 35 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Min} set s "$o.Special Operations Min Spill Min" "$s" order 36 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Turbine Release Max} set s "$o.Special Operations Max Turbine Release Max" "$s" order 45 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Max Turbine Release Min} set s "$o.Special Operations Max Turbine Release Min" "$s" order 46 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Max} set s "$o.Special Operations Min Turbine Release Max" "$s" order 47 "$s" units 15 {%f} 2 "$s" value 8495.0539775999969 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Min} set s "$o.Special Operations Min Turbine Release Min" "$s" order 48 "$s" units 15 {%f} 2 "$s" value -0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Generation Max} set s "$o.Special Operations Soft Max Generation Max" "$s" order 50 "$s" units 29 {%f} 2 "$s" value 825 {MW} "$o" {ScalarSlot} {Special Operations Soft Max Generation Min} set s "$o.Special Operations Soft Max Generation Min" "$s" order 51 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Generation Max} set s "$o.Special Operations Soft Min Generation Max" "$s" order 53 "$s" units 29 {%f} 2 "$s" value 825 {MW} "$o" {ScalarSlot} {Special Operations Soft Min Generation Min} set s "$o.Special Operations Soft Min Generation Min" "$s" order 54 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Outflow Max} set s "$o.Special Operations Soft Max Outflow Max" "$s" order 56 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Min} set s "$o.Special Operations Soft Max Outflow Min" "$s" order 57 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Outflow Max} set s "$o.Special Operations Soft Min Outflow Max" "$s" order 59 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Min} set s "$o.Special Operations Soft Min Outflow Min" "$s" order 60 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Max} set s "$o.Special Operations Soft Max Pool Elevation Max" "$s" order 62 "$s" units 2 {%f} 2 "$s" value 186.8424000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Min} set s "$o.Special Operations Soft Max Pool Elevation Min" "$s" order 63 "$s" units 2 {%f} 2 "$s" value 185.6232000000002 {m} "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 64 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Max} set s "$o.Special Operations Soft Min Pool Elevation Max" "$s" order 65 "$s" units 2 {%f} 2 "$s" value 186.8424000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Min} set s "$o.Special Operations Soft Min Pool Elevation Min" "$s" order 66 "$s" units 2 {%f} 2 "$s" value 185.6232000000002 {m} "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 67 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Spill Max} set s "$o.Special Operations Soft Max Spill Max" "$s" order 68 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Spill Min} set s "$o.Special Operations Soft Max Spill Min" "$s" order 69 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 70 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Spill Max} set s "$o.Special Operations Soft Min Spill Max" "$s" order 71 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Spill Min} set s "$o.Special Operations Soft Min Spill Min" "$s" order 72 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 79 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Max} set s "$o.Special Operations Soft Max Turbine Release Max" "$s" order 80 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Min} set s "$o.Special Operations Soft Max Turbine Release Min" "$s" order 81 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 82 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Max} set s "$o.Special Operations Soft Min Turbine Release Max" "$s" order 83 "$s" units 15 {%f} 2 "$s" value 8495.0539775999969 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Min} set s "$o.Special Operations Soft Min Turbine Release Min" "$s" order 84 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Wenatchee River Inflow Failure Count} set s "$o.Wenatchee River Inflow Failure Count" "$s" order 73 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 75 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 76 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Spill Failure Count} set s "$o.Special Operations Max Spill Failure Count" "$s" order 77 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 78 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Turbine Release Failure Count} set s "$o.Special Operations Max Turbine Release Failure Count" "$s" order 79 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 81 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Spill Failure Count} set s "$o.Special Operations Min Spill Failure Count" "$s" order 82 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 83 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Turbine Release Failure Count} set s "$o.Special Operations Min Turbine Release Failure Count" "$s" order 84 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Generation Failure Count} set s "$o.Special Operations Soft Max Generation Failure Count" "$s" order 85 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Failure Count} set s "$o.Special Operations Soft Max Outflow Failure Count" "$s" order 86 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Spill Failure Count} set s "$o.Special Operations Soft Max Spill Failure Count" "$s" order 87 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Failure Count} set s "$o.Special Operations Soft Max Tailwater Elev Failure Count" "$s" order 88 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Failure Count} set s "$o.Special Operations Soft Max Turbine Release Failure Count" "$s" order 89 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Generation Failure Count} set s "$o.Special Operations Soft Min Generation Failure Count" "$s" order 90 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Failure Count} set s "$o.Special Operations Soft Min Outflow Failure Count" "$s" order 91 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Spill Failure Count} set s "$o.Special Operations Soft Min Spill Failure Count" "$s" order 92 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Failure Count} set s "$o.Special Operations Soft Min Tailwater Elev Failure Count" "$s" order 93 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Failure Count} set s "$o.Special Operations Soft Min Turbine Release Failure Count" "$s" order 94 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 73 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 76 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Max} set s "$o.Special Operations Soft Max Tailwater Elev Max" "$s" order 85 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Min} set s "$o.Special Operations Soft Max Tailwater Elev Min" "$s" order 86 "$s" units 2 {%f} 2 "$s" value 164.59200000000018 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Max} set s "$o.Special Operations Soft Min Tailwater Elev Max" "$s" order 87 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Min} set s "$o.Special Operations Soft Min Tailwater Elev Min" "$s" order 88 "$s" units 2 {%f} 2 "$s" value 164.59200000000018 {m} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 89 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 90 "$s" units 2 {%f} 2 "$s" value 164.59200000000018 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 91 "$s" units 2 {%f} 2 "$s" value 184.4040000000002 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 92 "$s" units 2 {%f} 2 "$s" value 164.59200000000018 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Failure Count} set s "$o.Special Operations Soft Max Pool Elevation Failure Count" "$s" order 107 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Failure Count} set s "$o.Special Operations Soft Min Pool Elevation Failure Count" "$s" order 108 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 105 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 106 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 107 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 108 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Fish Spill Manual} set s "$o.Fish Spill Manual" "$s" order 109 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Fish Spill Manual Max} set s "$o.Fish Spill Manual Max" "$s" order 110 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Fish Spill Manual Min} set s "$o.Fish Spill Manual Min" "$s" order 111 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Fish Spill Manual Failure Count} set s "$o.Fish Spill Manual Failure Count" "$s" order 18 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 113 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 114 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 115 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 116 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 117 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 118 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 119 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 120 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 121 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 122 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 123 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 124 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 13 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 2 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 3 {Wenatchee River Inflow Failure Count} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Spill Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Spill Failure Count} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 14 {Special Operations Soft Max Generation Failure Count} "$sg" SlotGroup LocalSlot 15 {Special Operations Soft Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 16 {Special Operations Soft Max Spill Failure Count} "$sg" SlotGroup LocalSlot 17 {Special Operations Soft Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 18 {Special Operations Soft Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 19 {Special Operations Soft Min Generation Failure Count} "$sg" SlotGroup LocalSlot 20 {Special Operations Soft Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 21 {Special Operations Soft Min Spill Failure Count} "$sg" SlotGroup LocalSlot 22 {Special Operations Soft Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 23 {Special Operations Soft Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 24 {Special Operations Soft Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 25 {Special Operations Soft Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 26 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 27 {Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 28 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 29 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 30 {Regulated Spill Failure Count} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 91 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Min} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust} "$o" SlotGroup {Side Inflows} set sg "$o.Side Inflows" "$sg" SlotGroup Order 89 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Wenatchee River Inflow} "$sg" SlotGroup LocalSlot 1 {Wenatchee River Inflow Max} "$sg" SlotGroup LocalSlot 2 {Wenatchee River Inflow Min} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 84 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 79 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 74 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$o" SlotGroup {Special Operations Spill} set sg "$o.Special Operations Spill" "$sg" SlotGroup Order 69 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Spill Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Spill Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Spill Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 64 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Turbine Release} set sg "$o.Special Operations Turbine Release" "$sg" SlotGroup Order 59 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Turbine Release Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Turbine Release Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Turbine Release Min} "$o" SlotGroup {Special Operations Soft Generation} set sg "$o.Special Operations Soft Generation" "$sg" SlotGroup Order 54 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Generation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Generation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation Min} "$o" SlotGroup {Special Operations Soft Outflow} set sg "$o.Special Operations Soft Outflow" "$sg" SlotGroup Order 49 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Outflow Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Outflow Min} "$o" SlotGroup {Special Operations Soft Pool Elevations} set sg "$o.Special Operations Soft Pool Elevations" "$sg" SlotGroup Order 44 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Pool Elevation Min} "$o" SlotGroup {Special Operations Soft Spill} set sg "$o.Special Operations Soft Spill" "$sg" SlotGroup Order 39 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Spill Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Spill Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Spill Min} "$o" SlotGroup {Special Operations Soft Tailwater Elev} set sg "$o.Special Operations Soft Tailwater Elev" "$sg" SlotGroup Order 34 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Soft Turbine Release} set sg "$o.Special Operations Soft Turbine Release" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Turbine Release Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Turbine Release Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Turbine Release Min} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 20 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Fish Spill} set sg "$o.Fish Spill" "$sg" SlotGroup Order 21 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 2 {Fish Spill Manual Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 28 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Wanapum Data Validation} set o "$ws.Wanapum Data Validation" $ws SimObj $obj {DataObj} 363 885 {Cyan} 780 1278 316 469 "$o" geospatialCoords 0 0 316 469 "$o" objAttributes { \ } "$o" objOrd wsList 5540 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 10 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 11 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 12 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 8 "$s" units 15 {%f} 2 "$s" value 707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 9 "$s" units 15 {%f} 2 "$s" value -707.92116479999981 {cms} "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 15 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 16 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 17 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 18 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 22 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 24 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 2 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 3 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 5 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 6 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Spill Max} set s "$o.Special Operations Max Spill Max" "$s" order 33 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Spill Min} set s "$o.Special Operations Max Spill Min" "$s" order 34 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Max} set s "$o.Special Operations Min Spill Max" "$s" order 35 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Min} set s "$o.Special Operations Min Spill Min" "$s" order 36 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Turbine Release Max} set s "$o.Special Operations Max Turbine Release Max" "$s" order 45 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Max Turbine Release Min} set s "$o.Special Operations Max Turbine Release Min" "$s" order 46 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Max} set s "$o.Special Operations Min Turbine Release Max" "$s" order 47 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Min} set s "$o.Special Operations Min Turbine Release Min" "$s" order 48 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Generation Max} set s "$o.Special Operations Soft Max Generation Max" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Soft Max Generation Min} set s "$o.Special Operations Soft Max Generation Min" "$s" order 13 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Generation Max} set s "$o.Special Operations Soft Min Generation Max" "$s" order 15 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Soft Min Generation Min} set s "$o.Special Operations Soft Min Generation Min" "$s" order 16 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Outflow Max} set s "$o.Special Operations Soft Max Outflow Max" "$s" order 13 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Min} set s "$o.Special Operations Soft Max Outflow Min" "$s" order 14 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Outflow Max} set s "$o.Special Operations Soft Min Outflow Max" "$s" order 16 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Min} set s "$o.Special Operations Soft Min Outflow Min" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Max} set s "$o.Special Operations Soft Max Pool Elevation Max" "$s" order 14 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Min} set s "$o.Special Operations Soft Max Pool Elevation Min" "$s" order 15 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Max} set s "$o.Special Operations Soft Min Pool Elevation Max" "$s" order 17 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Min} set s "$o.Special Operations Soft Min Pool Elevation Min" "$s" order 18 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Spill Max} set s "$o.Special Operations Soft Max Spill Max" "$s" order 15 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Spill Min} set s "$o.Special Operations Soft Max Spill Min" "$s" order 16 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Spill Max} set s "$o.Special Operations Soft Min Spill Max" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Spill Min} set s "$o.Special Operations Soft Min Spill Min" "$s" order 19 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Max} set s "$o.Special Operations Soft Max Turbine Release Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Min} set s "$o.Special Operations Soft Max Turbine Release Min" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Max} set s "$o.Special Operations Soft Min Turbine Release Max" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Min} set s "$o.Special Operations Soft Min Turbine Release Min" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 75 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 76 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Spill Failure Count} set s "$o.Special Operations Max Spill Failure Count" "$s" order 77 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 78 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Turbine Release Failure Count} set s "$o.Special Operations Max Turbine Release Failure Count" "$s" order 79 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 81 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Spill Failure Count} set s "$o.Special Operations Min Spill Failure Count" "$s" order 82 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 83 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Turbine Release Failure Count} set s "$o.Special Operations Min Turbine Release Failure Count" "$s" order 84 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Generation Failure Count} set s "$o.Special Operations Soft Max Generation Failure Count" "$s" order 85 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Failure Count} set s "$o.Special Operations Soft Max Outflow Failure Count" "$s" order 86 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Spill Failure Count} set s "$o.Special Operations Soft Max Spill Failure Count" "$s" order 87 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Failure Count} set s "$o.Special Operations Soft Max Tailwater Elev Failure Count" "$s" order 88 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Failure Count} set s "$o.Special Operations Soft Max Turbine Release Failure Count" "$s" order 89 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Generation Failure Count} set s "$o.Special Operations Soft Min Generation Failure Count" "$s" order 90 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Failure Count} set s "$o.Special Operations Soft Min Outflow Failure Count" "$s" order 91 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Spill Failure Count} set s "$o.Special Operations Soft Min Spill Failure Count" "$s" order 92 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Failure Count} set s "$o.Special Operations Soft Min Tailwater Elev Failure Count" "$s" order 93 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Failure Count} set s "$o.Special Operations Soft Min Turbine Release Failure Count" "$s" order 94 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Max} set s "$o.Special Operations Soft Max Tailwater Elev Max" "$s" order 85 "$s" units 2 {%f} 2 "$s" value 158.49600000000018 {m} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Min} set s "$o.Special Operations Soft Max Tailwater Elev Min" "$s" order 86 "$s" units 2 {%f} 2 "$s" value 146.30400000000014 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Max} set s "$o.Special Operations Soft Min Tailwater Elev Max" "$s" order 87 "$s" units 2 {%f} 2 "$s" value 158.49600000000018 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Min} set s "$o.Special Operations Soft Min Tailwater Elev Min" "$s" order 88 "$s" units 2 {%f} 2 "$s" value 146.30400000000014 {m} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 89 "$s" units 2 {%f} 2 "$s" value 158.49600000000018 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 90 "$s" units 2 {%f} 2 "$s" value 146.30400000000014 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 91 "$s" units 2 {%f} 2 "$s" value 158.49600000000018 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 92 "$s" units 2 {%f} 2 "$s" value 146.30400000000014 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Failure Count} set s "$o.Special Operations Soft Max Pool Elevation Failure Count" "$s" order 107 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Failure Count} set s "$o.Special Operations Soft Min Pool Elevation Failure Count" "$s" order 108 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Max Generation w Par Con} set s "$o.Special Operations Max Generation w Par Con" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation w Par Con Max} set s "$o.Special Operations Max Generation w Par Con Max" "$s" order 17 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Max Generation w Par Con Min} set s "$o.Special Operations Max Generation w Par Con Min" "$s" order 18 "$s" units 29 {%f} 2 "$s" value -0 {MW} "$o" {SeriesSlot} {Special Operations Max Generation wo Par Con} set s "$o.Special Operations Max Generation wo Par Con" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation wo Par Con Max} set s "$o.Special Operations Max Generation wo Par Con Max" "$s" order 20 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Max Generation wo Par Con Min} set s "$o.Special Operations Max Generation wo Par Con Min" "$s" order 21 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Min Generation w Par Con} set s "$o.Special Operations Min Generation w Par Con" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Generation w Par Con Max} set s "$o.Special Operations Min Generation w Par Con Max" "$s" order 20 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Min Generation w Par Con Min} set s "$o.Special Operations Min Generation w Par Con Min" "$s" order 21 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Min Generation wo Par Con} set s "$o.Special Operations Min Generation wo Par Con" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Generation wo Par Con Max} set s "$o.Special Operations Min Generation wo Par Con Max" "$s" order 26 "$s" units 29 {%f} 2 "$s" value 1240 {MW} "$o" {ScalarSlot} {Special Operations Min Generation wo Par Con Min} set s "$o.Special Operations Min Generation wo Par Con Min" "$s" order 27 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Pool Elevation w Par Con} set s "$o.Special Operations Max Pool Elevation w Par Con" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation w Par Con Max} set s "$o.Special Operations Max Pool Elevation w Par Con Max" "$s" order 29 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation w Par Con Min} set s "$o.Special Operations Max Pool Elevation w Par Con Min" "$s" order 30 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {SeriesSlot} {Special Operations Max Pool Elevation wo Par Con} set s "$o.Special Operations Max Pool Elevation wo Par Con" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation wo Par Con Max} set s "$o.Special Operations Max Pool Elevation wo Par Con Max" "$s" order 32 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation wo Par Con Min} set s "$o.Special Operations Max Pool Elevation wo Par Con Min" "$s" order 33 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {ScalarSlot} {Special Operations Max Generation w Par Con Failure Count} set s "$o.Special Operations Max Generation w Par Con Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Generation wo Par Con Failure Count} set s "$o.Special Operations Max Generation wo Par Con Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation w Par Con Failure Count} set s "$o.Special Operations Min Generation w Par Con Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation wo Par Con Failure Count} set s "$o.Special Operations Min Generation wo Par Con Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation w Par Con Failure Count} set s "$o.Special Operations Max Pool Elevation w Par Con Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation wo Par Con Failure Count} set s "$o.Special Operations Max Pool Elevation wo Par Con Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 125 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 126 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 127 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 128 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Fall Fish Spill Manual} set s "$o.Fall Fish Spill Manual" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Fall Fish Spill Manual Max} set s "$o.Fall Fish Spill Manual Max" "$s" order 19 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Fall Fish Spill Manual Min} set s "$o.Fall Fish Spill Manual Min" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Sumer Fish Spill Manual} set s "$o.Sumer Fish Spill Manual" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Summer Fish Spill Manual Max} set s "$o.Summer Fish Spill Manual Max" "$s" order 19 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Summer Fish Spill Manual Min} set s "$o.Summer Fish Spill Manual Min" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Fall Fish Spill Manual Failure Count} set s "$o.Fall Fish Spill Manual Failure Count" "$s" order 18 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Summer Fish Spill Manual Failure Count} set s "$o.Summer Fish Spill Manual Failure Count" "$s" order 19 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 137 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 138 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 139 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 140 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 141 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 142 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 143 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 144 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 145 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 146 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 147 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 148 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation w Par Con Max} set s "$o.Special Operations Min Pool Elevation w Par Con Max" "$s" order 20 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation w Par Con Min} set s "$o.Special Operations Min Pool Elevation w Par Con Min" "$s" order 21 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation wo Par Con Max} set s "$o.Special Operations Min Pool Elevation wo Par Con Max" "$s" order 22 "$s" units 2 {%f} 2 "$s" value 174.19320000000019 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation wo Par Con Min} set s "$o.Special Operations Min Pool Elevation wo Par Con Min" "$s" order 23 "$s" units 2 {%f} 2 "$s" value 170.68800000000019 {m} "$o" {ScalarSlot} {Special Operations Max Outflow w Par Con Min} set s "$o.Special Operations Max Outflow w Par Con Min" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow w Par Con Min} set s "$o.Special Operations Min Outflow w Par Con Min" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow wo Par Con Max} set s "$o.Special Operations Max Outflow wo Par Con Max" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow wo Par Con Min} set s "$o.Special Operations Max Outflow wo Par Con Min" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow wo Par Con Max} set s "$o.Special Operations Min Outflow wo Par Con Max" "$s" order 22 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow wo Par Con Min} set s "$o.Special Operations Min Outflow wo Par Con Min" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Min Pool Elevation w Par Con} set s "$o.Special Operations Min Pool Elevation w Par Con" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation wo Par Con} set s "$o.Special Operations Min Pool Elevation wo Par Con" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Outflow wo Par Con} set s "$o.Special Operations Max Outflow wo Par Con" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Max Outflow w Par Con} set s "$o.Special Operations Max Outflow w Par Con" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow w Par Con Max} set s "$o.Special Operations Max Outflow w Par Con Max" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {SeriesSlot} {Special Operations Min Outflow w Par Con} set s "$o.Special Operations Min Outflow w Par Con" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Outflow w Par Con Max} set s "$o.Special Operations Min Outflow w Par Con Max" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {SeriesSlot} {Special Operations Min Outflow wo Par Con} set s "$o.Special Operations Min Outflow wo Par Con" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Pool Elevation w Par Con Failure Count} set s "$o.Special Operations Min Pool Elevation w Par Con Failure Count" "$s" order 20 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation wo Par Con Failure Count} set s "$o.Special Operations Min Pool Elevation wo Par Con Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow w Par Con Failure Count} set s "$o.Special Operations Max Outflow w Par Con Failure Count" "$s" order 20 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow wo Par Con Failure Count} set s "$o.Special Operations Max Outflow wo Par Con Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow w Par Con Failure Count} set s "$o.Special Operations Min Outflow w Par Con Failure Count" "$s" order 20 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow wo Par Con Failure Count} set s "$o.Special Operations Min Outflow wo Par Con Failure Count" "$s" order 21 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 13 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 2 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Spill Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Spill Failure Count} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 13 {Special Operations Soft Max Generation Failure Count} "$sg" SlotGroup LocalSlot 14 {Special Operations Soft Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 15 {Special Operations Soft Max Spill Failure Count} "$sg" SlotGroup LocalSlot 16 {Special Operations Soft Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 17 {Special Operations Soft Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 18 {Special Operations Soft Min Generation Failure Count} "$sg" SlotGroup LocalSlot 19 {Special Operations Soft Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 20 {Special Operations Soft Min Spill Failure Count} "$sg" SlotGroup LocalSlot 21 {Special Operations Soft Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 22 {Special Operations Soft Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 23 {Special Operations Soft Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 24 {Special Operations Soft Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 25 {Special Operations Max Generation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 26 {Special Operations Max Generation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 27 {Special Operations Max Pool Elevation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 28 {Special Operations Max Pool Elevation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 29 {Special Operations Min Generation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 30 {Special Operations Min Generation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 31 {Summer Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 32 {Fall Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 33 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 34 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 35 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 36 {Regulated Spill Failure Count} "$sg" SlotGroup LocalSlot 37 {Special Operations Min Pool Elevation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 38 {Special Operations Min Pool Elevation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 39 {Special Operations Max Outflow w Par Con Failure Count} "$sg" SlotGroup LocalSlot 40 {Special Operations Max Outflow wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 41 {Special Operations Min Outflow w Par Con Failure Count} "$sg" SlotGroup LocalSlot 42 {Special Operations Min Outflow wo Par Con Failure Count} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 47 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Min} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 40 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Generation w Par Con} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Generation w Par Con Max} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Generation w Par Con Min} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Generation wo Par Con} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Generation wo Par Con Max} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Generation wo Par Con Min} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Generation w Par Con} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Generation w Par Con Max} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Generation w Par Con Min} "$sg" SlotGroup LocalSlot 15 {Special Operations Min Generation wo Par Con} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Generation wo Par Con Max} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Generation wo Par Con Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 35 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Outflow w Par Con Min} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Outflow w Par Con Min} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Outflow wo Par Con Max} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Outflow wo Par Con Min} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Outflow wo Par Con Max} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Outflow wo Par Con Min} "$sg" SlotGroup LocalSlot 12 {Special Operations Max Outflow wo Par Con} "$sg" SlotGroup LocalSlot 13 {Special Operations Max Outflow w Par Con} "$sg" SlotGroup LocalSlot 14 {Special Operations Max Outflow w Par Con Max} "$sg" SlotGroup LocalSlot 15 {Special Operations Min Outflow w Par Con} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Outflow w Par Con Max} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Outflow wo Par Con} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Pool Elevation w Par Con Max} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Pool Elevation w Par Con Min} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Pool Elevation wo Par Con} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Pool Elevation wo Par Con Max} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Pool Elevation wo Par Con Min} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Pool Elevation w Par Con Max} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Pool Elevation w Par Con Min} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Pool Elevation wo Par Con Max} "$sg" SlotGroup LocalSlot 15 {Special Operations Min Pool Elevation wo Par Con Min} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Pool Elevation wo Par Con} "$o" SlotGroup {Special Operations Spill} set sg "$o.Special Operations Spill" "$sg" SlotGroup Order 25 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Spill Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Spill Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Spill Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 20 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Turbine Release} set sg "$o.Special Operations Turbine Release" "$sg" SlotGroup Order 15 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Turbine Release Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Turbine Release Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Turbine Release Min} "$o" SlotGroup {Special Operations Soft Generation} set sg "$o.Special Operations Soft Generation" "$sg" SlotGroup Order 10 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Generation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Generation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation Min} "$o" SlotGroup {Special Operations Soft Outflow} set sg "$o.Special Operations Soft Outflow" "$sg" SlotGroup Order 11 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Outflow Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Outflow Min} "$o" SlotGroup {Special Operations Soft Pool Elevations} set sg "$o.Special Operations Soft Pool Elevations" "$sg" SlotGroup Order 12 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Pool Elevation Min} "$o" SlotGroup {Special Operations Soft Spill} set sg "$o.Special Operations Soft Spill" "$sg" SlotGroup Order 13 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Spill Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Spill Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Spill Min} "$o" SlotGroup {Special Operations Soft Tailwater Elev} set sg "$o.Special Operations Soft Tailwater Elev" "$sg" SlotGroup Order 14 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Soft Turbine Release} set sg "$o.Special Operations Soft Turbine Release" "$sg" SlotGroup Order 15 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Turbine Release Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Turbine Release Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Turbine Release Min} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 19 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Fish Spill} set sg "$o.Fish Spill" "$sg" SlotGroup Order 17 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fall Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fall Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 2 {Fall Fish Spill Manual Min} "$sg" SlotGroup LocalSlot 3 {Sumer Fish Spill Manual} "$sg" SlotGroup LocalSlot 4 {Summer Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 5 {Summer Fish Spill Manual Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 25 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Priest Rapids Data Validation} set o "$ws.Priest Rapids Data Validation" $ws SimObj $obj {DataObj} 383 662 {Cyan} 941 1298 477 489 "$o" geospatialCoords 0 0 477 489 "$o" objAttributes { \ } "$o" objOrd wsList 5541 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {CHJ Forecast Outflow} set s "$o.CHJ Forecast Outflow" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 13 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 15 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {CHJ Forecast Outflow Failure Count} set s "$o.CHJ Forecast Outflow Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 11 "$s" units 15 {%f} 2 "$s" value 707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 12 "$s" units 15 {%f} 2 "$s" value -707.92116479999981 {cms} "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Crab Creek Inflow} set s "$o.Crab Creek Inflow" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Crab Creek Inflow Max} set s "$o.Crab Creek Inflow Max" "$s" order 13 "$s" units 15 {%f} 2 "$s" value 283.1684659199999 {cms} "$o" {ScalarSlot} {Crab Creek Inflow Min} set s "$o.Crab Creek Inflow Min" "$s" order 14 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 19 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 20 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 21 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 22 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 25 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 26 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 27 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 28 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 2 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 3 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 5 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 6 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {SeriesSlot} {Special Operations Max Spill} set s "$o.Special Operations Max Spill" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Spill} set s "$o.Special Operations Min Spill" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Spill Max} set s "$o.Special Operations Max Spill Max" "$s" order 37 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Spill Min} set s "$o.Special Operations Max Spill Min" "$s" order 38 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Max} set s "$o.Special Operations Min Spill Max" "$s" order 39 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Spill Min} set s "$o.Special Operations Min Spill Min" "$s" order 40 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Turbine Release} set s "$o.Special Operations Max Turbine Release" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Turbine Release} set s "$o.Special Operations Min Turbine Release" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Turbine Release Max} set s "$o.Special Operations Max Turbine Release Max" "$s" order 49 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Max Turbine Release Min} set s "$o.Special Operations Max Turbine Release Min" "$s" order 50 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Max} set s "$o.Special Operations Min Turbine Release Max" "$s" order 51 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Min Turbine Release Min} set s "$o.Special Operations Min Turbine Release Min" "$s" order 52 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Generation} set s "$o.Special Operations Soft Max Generation" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Generation Max} set s "$o.Special Operations Soft Max Generation Max" "$s" order 54 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Soft Max Generation Min} set s "$o.Special Operations Soft Max Generation Min" "$s" order 55 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Min Generation} set s "$o.Special Operations Soft Min Generation" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Generation Max} set s "$o.Special Operations Soft Min Generation Max" "$s" order 57 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Soft Min Generation Min} set s "$o.Special Operations Soft Min Generation Min" "$s" order 58 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Soft Max Outflow} set s "$o.Special Operations Soft Max Outflow" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Outflow Max} set s "$o.Special Operations Soft Max Outflow Max" "$s" order 60 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Min} set s "$o.Special Operations Soft Max Outflow Min" "$s" order 61 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Outflow} set s "$o.Special Operations Soft Min Outflow" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Outflow Max} set s "$o.Special Operations Soft Min Outflow Max" "$s" order 63 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Min} set s "$o.Special Operations Soft Min Outflow Min" "$s" order 64 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Pool Elevation} set s "$o.Special Operations Soft Max Pool Elevation" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Max} set s "$o.Special Operations Soft Max Pool Elevation Max" "$s" order 66 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Min} set s "$o.Special Operations Soft Max Pool Elevation Min" "$s" order 67 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {SeriesSlot} {Special Operations Soft Min Pool Elevation} set s "$o.Special Operations Soft Min Pool Elevation" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Max} set s "$o.Special Operations Soft Min Pool Elevation Max" "$s" order 69 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Min} set s "$o.Special Operations Soft Min Pool Elevation Min" "$s" order 70 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {SeriesSlot} {Special Operations Soft Max Spill} set s "$o.Special Operations Soft Max Spill" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Spill Max} set s "$o.Special Operations Soft Max Spill Max" "$s" order 72 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Spill Min} set s "$o.Special Operations Soft Max Spill Min" "$s" order 73 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Spill} set s "$o.Special Operations Soft Min Spill" "$s" order 74 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Spill Max} set s "$o.Special Operations Soft Min Spill Max" "$s" order 75 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Spill Min} set s "$o.Special Operations Soft Min Spill Min" "$s" order 76 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Max Turbine Release} set s "$o.Special Operations Soft Max Turbine Release" "$s" order 83 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Max} set s "$o.Special Operations Soft Max Turbine Release Max" "$s" order 84 "$s" units 15 {%f} 2 "$s" value 11326.738636799997 {cms} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Min} set s "$o.Special Operations Soft Max Turbine Release Min" "$s" order 85 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Soft Min Turbine Release} set s "$o.Special Operations Soft Min Turbine Release" "$s" order 86 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Max} set s "$o.Special Operations Soft Min Turbine Release Max" "$s" order 87 "$s" units 15 {%f} 2 "$s" value 7079.2116479999977 {cms} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Min} set s "$o.Special Operations Soft Min Turbine Release Min" "$s" order 88 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Crab Creek Inflow Failure Count} set s "$o.Crab Creek Inflow Failure Count" "$s" order 77 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 79 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Spill Failure Count} set s "$o.Special Operations Max Spill Failure Count" "$s" order 81 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 82 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Turbine Release Failure Count} set s "$o.Special Operations Max Turbine Release Failure Count" "$s" order 83 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 84 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 85 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Spill Failure Count} set s "$o.Special Operations Min Spill Failure Count" "$s" order 86 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 87 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Turbine Release Failure Count} set s "$o.Special Operations Min Turbine Release Failure Count" "$s" order 88 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Generation Failure Count} set s "$o.Special Operations Soft Max Generation Failure Count" "$s" order 89 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Outflow Failure Count} set s "$o.Special Operations Soft Max Outflow Failure Count" "$s" order 90 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Spill Failure Count} set s "$o.Special Operations Soft Max Spill Failure Count" "$s" order 91 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Failure Count} set s "$o.Special Operations Soft Max Tailwater Elev Failure Count" "$s" order 92 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Max Turbine Release Failure Count} set s "$o.Special Operations Soft Max Turbine Release Failure Count" "$s" order 93 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Generation Failure Count} set s "$o.Special Operations Soft Min Generation Failure Count" "$s" order 94 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Outflow Failure Count} set s "$o.Special Operations Soft Min Outflow Failure Count" "$s" order 95 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Spill Failure Count} set s "$o.Special Operations Soft Min Spill Failure Count" "$s" order 96 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Failure Count} set s "$o.Special Operations Soft Min Tailwater Elev Failure Count" "$s" order 97 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Turbine Release Failure Count} set s "$o.Special Operations Soft Min Turbine Release Failure Count" "$s" order 98 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Soft Max Tailwater Elev} set s "$o.Special Operations Soft Max Tailwater Elev" "$s" order 77 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Soft Min Tailwater Elev} set s "$o.Special Operations Soft Min Tailwater Elev" "$s" order 80 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Max} set s "$o.Special Operations Soft Max Tailwater Elev Max" "$s" order 89 "$s" units 2 {%f} 2 "$s" value 132.58800000000014 {m} "$o" {ScalarSlot} {Special Operations Soft Max Tailwater Elev Min} set s "$o.Special Operations Soft Max Tailwater Elev Min" "$s" order 90 "$s" units 2 {%f} 2 "$s" value 115.82400000000013 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Max} set s "$o.Special Operations Soft Min Tailwater Elev Max" "$s" order 91 "$s" units 2 {%f} 2 "$s" value 132.58800000000014 {m} "$o" {ScalarSlot} {Special Operations Soft Min Tailwater Elev Min} set s "$o.Special Operations Soft Min Tailwater Elev Min" "$s" order 92 "$s" units 2 {%f} 2 "$s" value 115.82400000000013 {m} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 93 "$s" units 2 {%f} 2 "$s" value 132.58800000000014 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 94 "$s" units 2 {%f} 2 "$s" value 115.82400000000013 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 95 "$s" units 2 {%f} 2 "$s" value 132.58800000000014 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 96 "$s" units 2 {%f} 2 "$s" value 115.82400000000013 {m} "$o" {ScalarSlot} {Special Operations Soft Max Pool Elevation Failure Count} set s "$o.Special Operations Soft Max Pool Elevation Failure Count" "$s" order 111 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Soft Min Pool Elevation Failure Count} set s "$o.Special Operations Soft Min Pool Elevation Failure Count" "$s" order 112 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Max Generation w Par Con} set s "$o.Special Operations Max Generation w Par Con" "$s" order 113 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation w Par Con Max} set s "$o.Special Operations Max Generation w Par Con Max" "$s" order 114 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Max Generation w Par Con Min} set s "$o.Special Operations Max Generation w Par Con Min" "$s" order 115 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Generation wo Par Con} set s "$o.Special Operations Max Generation wo Par Con" "$s" order 116 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation wo Par Con Max} set s "$o.Special Operations Max Generation wo Par Con Max" "$s" order 117 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Max Generation wo Par Con Min} set s "$o.Special Operations Max Generation wo Par Con Min" "$s" order 118 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Pool Elevation w Par Con} set s "$o.Special Operations Max Pool Elevation w Par Con" "$s" order 119 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation w Par Con Max} set s "$o.Special Operations Max Pool Elevation w Par Con Max" "$s" order 120 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation w Par Con Min} set s "$o.Special Operations Max Pool Elevation w Par Con Min" "$s" order 121 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {SeriesSlot} {Special Operations Max Pool Elevation wo Par Con} set s "$o.Special Operations Max Pool Elevation wo Par Con" "$s" order 122 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation wo Par Con Max} set s "$o.Special Operations Max Pool Elevation wo Par Con Max" "$s" order 123 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation wo Par Con Min} set s "$o.Special Operations Max Pool Elevation wo Par Con Min" "$s" order 124 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {SeriesSlot} {Special Operations Min Generation w Par Con} set s "$o.Special Operations Min Generation w Par Con" "$s" order 125 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Generation w Par Con Max} set s "$o.Special Operations Min Generation w Par Con Max" "$s" order 126 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Min Generation w Par Con Min} set s "$o.Special Operations Min Generation w Par Con Min" "$s" order 127 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Min Generation wo Par Con} set s "$o.Special Operations Min Generation wo Par Con" "$s" order 128 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Generation wo Par Con Max} set s "$o.Special Operations Min Generation wo Par Con Max" "$s" order 129 "$s" units 29 {%f} 2 "$s" value 1150 {MW} "$o" {ScalarSlot} {Special Operations Min Generation wo Par Con Min} set s "$o.Special Operations Min Generation wo Par Con Min" "$s" order 130 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Max Generation w Par Con Failure Count} set s "$o.Special Operations Max Generation w Par Con Failure Count" "$s" order 131 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Generation wo Par Con Failure Count} set s "$o.Special Operations Max Generation wo Par Con Failure Count" "$s" order 132 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation w Par Con Failure Count} set s "$o.Special Operations Max Pool Elevation w Par Con Failure Count" "$s" order 133 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation wo Par Con Failure Count} set s "$o.Special Operations Max Pool Elevation wo Par Con Failure Count" "$s" order 134 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation w Par Con Failure Count} set s "$o.Special Operations Min Generation w Par Con Failure Count" "$s" order 135 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation wo Par Con Failure Count} set s "$o.Special Operations Min Generation wo Par Con Failure Count" "$s" order 136 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {CHJ Forecast Outflow Max} set s "$o.CHJ Forecast Outflow Max" "$s" order 17 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {CHJ Forecast Outflow Min} set s "$o.CHJ Forecast Outflow Min" "$s" order 18 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 133 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 134 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 135 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 136 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Fall Fish Spill Manual Failure Count} set s "$o.Fall Fish Spill Manual Failure Count" "$s" order 137 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Summer Fish Spill Manual Failure Count} set s "$o.Summer Fish Spill Manual Failure Count" "$s" order 138 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Fall Fish Spill Manual} set s "$o.Fall Fish Spill Manual" "$s" order 139 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Fall Fish Spill Manual Max} set s "$o.Fall Fish Spill Manual Max" "$s" order 140 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Fall Fish Spill Manual Min} set s "$o.Fall Fish Spill Manual Min" "$s" order 141 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Sumer Fish Spill Manual} set s "$o.Sumer Fish Spill Manual" "$s" order 142 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Summer Fish Spill Manual Max} set s "$o.Summer Fish Spill Manual Max" "$s" order 143 "$s" units 15 {%f} 2 "$s" value 2803.3678126079994 {cms} "$o" {ScalarSlot} {Summer Fish Spill Manual Min} set s "$o.Summer Fish Spill Manual Min" "$s" order 144 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Flow Bands Import} set s "$o.Flow Bands Import" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Flow Bands Import Max} set s "$o.Flow Bands Import Max" "$s" order 20 "$s" units 15 {%f} 2 "$s" value 4247.5269887999984 {cms} "$o" {ScalarSlot} {Flow Bands Import Min} set s "$o.Flow Bands Import Min" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Daily High Flow Import} set s "$o.Daily High Flow Import" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Daily High Flow Import Max} set s "$o.Daily High Flow Import Max" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Daily High Flow Import Min} set s "$o.Daily High Flow Import Min" "$s" order 24 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Daily Low Flow Import} set s "$o.Daily Low Flow Import" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Daily Low Flow Import Max} set s "$o.Daily Low Flow Import Max" "$s" order 26 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Daily Low Flow Import Min} set s "$o.Daily Low Flow Import Min" "$s" order 27 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Flow Bands Import Failure Count} set s "$o.Flow Bands Import Failure Count" "$s" order 20 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Daily High Flow Import Failure Count} set s "$o.Daily High Flow Import Failure Count" "$s" order 20 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Daily Low Flow Import Failure Count} set s "$o.Daily Low Flow Import Failure Count" "$s" order 22 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 157 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 158 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 159 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 160 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 161 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 162 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 163 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 164 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 165 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 166 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 167 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 168 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow w Par Con Max} set s "$o.Special Operations Max Outflow w Par Con Max" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {SeriesSlot} {Special Operations Max Outflow w Par Con} set s "$o.Special Operations Max Outflow w Par Con" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow w Par Con Min} set s "$o.Special Operations Max Outflow w Par Con Min" "$s" order 25 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Outflow wo Par Con} set s "$o.Special Operations Max Outflow wo Par Con" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow wo Par Con Max} set s "$o.Special Operations Max Outflow wo Par Con Max" "$s" order 27 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow wo Par Con Min} set s "$o.Special Operations Max Outflow wo Par Con Min" "$s" order 28 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Min Outflow w Par Con} set s "$o.Special Operations Min Outflow w Par Con" "$s" order 29 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Outflow w Par Con Max} set s "$o.Special Operations Min Outflow w Par Con Max" "$s" order 30 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow w Par Con Min} set s "$o.Special Operations Min Outflow w Par Con Min" "$s" order 31 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Min Outflow wo Par Con} set s "$o.Special Operations Min Outflow wo Par Con" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Outflow wo Par Con Max} set s "$o.Special Operations Min Outflow wo Par Con Max" "$s" order 33 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow wo Par Con Min} set s "$o.Special Operations Min Outflow wo Par Con Min" "$s" order 34 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Min Pool Elevation w Par Con} set s "$o.Special Operations Min Pool Elevation w Par Con" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Pool Elevation w Par Con Max} set s "$o.Special Operations Min Pool Elevation w Par Con Max" "$s" order 24 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation w Par Con Min} set s "$o.Special Operations Min Pool Elevation w Par Con Min" "$s" order 25 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {SeriesSlot} {Special Operations Min Pool Elevation wo Par Con} set s "$o.Special Operations Min Pool Elevation wo Par Con" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Min Pool Elevation wo Par Con Max} set s "$o.Special Operations Min Pool Elevation wo Par Con Max" "$s" order 27 "$s" units 2 {%f} 2 "$s" value 148.74240000000015 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation wo Par Con Min} set s "$o.Special Operations Min Pool Elevation wo Par Con Min" "$s" order 28 "$s" units 2 {%f} 2 "$s" value 146.76120000000014 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation wo Par Con Failure Count} set s "$o.Special Operations Min Pool Elevation wo Par Con Failure Count" "$s" order 23 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation w Par Con Failure Count} set s "$o.Special Operations Min Pool Elevation w Par Con Failure Count" "$s" order 24 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow w Par Con Failure Count} set s "$o.Special Operations Max Outflow w Par Con Failure Count" "$s" order 23 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow wo Par Con Failure Count} set s "$o.Special Operations Max Outflow wo Par Con Failure Count" "$s" order 24 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow w Par Con Failure Count} set s "$o.Special Operations Min Outflow w Par Con Failure Count" "$s" order 23 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow wo Par Con Failure Count} set s "$o.Special Operations Min Outflow wo Par Con Failure Count" "$s" order 24 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 16 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 1 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 2 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 3 {CHJ Forecast Outflow Failure Count} "$sg" SlotGroup LocalSlot 4 {Crab Creek Inflow Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Spill Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Spill Failure Count} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 15 {Special Operations Soft Max Generation Failure Count} "$sg" SlotGroup LocalSlot 16 {Special Operations Soft Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 17 {Special Operations Soft Max Spill Failure Count} "$sg" SlotGroup LocalSlot 18 {Special Operations Soft Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 19 {Special Operations Soft Max Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 20 {Special Operations Soft Min Generation Failure Count} "$sg" SlotGroup LocalSlot 21 {Special Operations Soft Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 22 {Special Operations Soft Min Spill Failure Count} "$sg" SlotGroup LocalSlot 23 {Special Operations Soft Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 24 {Special Operations Soft Min Turbine Release Failure Count} "$sg" SlotGroup LocalSlot 25 {Special Operations Soft Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 26 {Special Operations Soft Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 27 {Special Operations Max Generation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 28 {Special Operations Max Generation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 29 {Special Operations Max Pool Elevation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 30 {Special Operations Max Pool Elevation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 31 {Special Operations Min Generation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 32 {Special Operations Min Generation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 33 {Fall Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 34 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 35 {Summer Fish Spill Manual Failure Count} "$sg" SlotGroup LocalSlot 36 {Daily High Flow Import Failure Count} "$sg" SlotGroup LocalSlot 37 {Daily Low Flow Import Failure Count} "$sg" SlotGroup LocalSlot 38 {Flow Bands Import Failure Count} "$sg" SlotGroup LocalSlot 39 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 40 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 41 {Regulated Spill Failure Count} "$sg" SlotGroup LocalSlot 42 {Special Operations Min Pool Elevation w Par Con Failure Count} "$sg" SlotGroup LocalSlot 43 {Special Operations Min Pool Elevation wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 44 {Special Operations Max Outflow w Par Con Failure Count} "$sg" SlotGroup LocalSlot 45 {Special Operations Max Outflow wo Par Con Failure Count} "$sg" SlotGroup LocalSlot 46 {Special Operations Min Outflow w Par Con Failure Count} "$sg" SlotGroup LocalSlot 47 {Special Operations Min Outflow wo Par Con Failure Count} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 94 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Min} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust} "$o" SlotGroup {Side Inflows} set sg "$o.Side Inflows" "$sg" SlotGroup Order 92 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Crab Creek Inflow} "$sg" SlotGroup LocalSlot 1 {Crab Creek Inflow Max} "$sg" SlotGroup LocalSlot 2 {Crab Creek Inflow Min} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 87 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Generation w Par Con} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Generation w Par Con Max} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Generation w Par Con Min} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Generation wo Par Con} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Generation wo Par Con Max} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Generation wo Par Con Min} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Generation w Par Con} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Generation w Par Con Max} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Generation w Par Con Min} "$sg" SlotGroup LocalSlot 15 {Special Operations Min Generation wo Par Con} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Generation wo Par Con Max} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Generation wo Par Con Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 82 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Outflow w Par Con} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Outflow w Par Con Max} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Outflow w Par Con Min} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Outflow wo Par Con} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Outflow wo Par Con Max} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Outflow wo Par Con Min} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Outflow w Par Con} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Outflow w Par Con Max} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Outflow w Par Con Min} "$sg" SlotGroup LocalSlot 15 {Special Operations Min Outflow wo Par Con} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Outflow wo Par Con Max} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Outflow wo Par Con Min} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 77 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Pool Elevation w Par Con Max} "$sg" SlotGroup LocalSlot 8 {Special Operations Max Pool Elevation w Par Con Min} "$sg" SlotGroup LocalSlot 9 {Special Operations Max Pool Elevation wo Par Con} "$sg" SlotGroup LocalSlot 10 {Special Operations Max Pool Elevation wo Par Con Max} "$sg" SlotGroup LocalSlot 11 {Special Operations Max Pool Elevation wo Par Con Min} "$sg" SlotGroup LocalSlot 12 {Special Operations Min Pool Elevation w Par Con} "$sg" SlotGroup LocalSlot 13 {Special Operations Min Pool Elevation w Par Con Max} "$sg" SlotGroup LocalSlot 14 {Special Operations Min Pool Elevation w Par Con Min} "$sg" SlotGroup LocalSlot 15 {Special Operations Min Pool Elevation wo Par Con} "$sg" SlotGroup LocalSlot 16 {Special Operations Min Pool Elevation wo Par Con Max} "$sg" SlotGroup LocalSlot 17 {Special Operations Min Pool Elevation wo Par Con Min} "$o" SlotGroup {Special Operations Spill} set sg "$o.Special Operations Spill" "$sg" SlotGroup Order 72 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Spill} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Spill Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Spill Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Spill Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 67 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Turbine Release} set sg "$o.Special Operations Turbine Release" "$sg" SlotGroup Order 62 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Turbine Release} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Turbine Release Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Turbine Release Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Turbine Release Min} "$o" SlotGroup {Special Operations Soft Generation} set sg "$o.Special Operations Soft Generation" "$sg" SlotGroup Order 57 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Generation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Generation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Generation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Generation Min} "$o" SlotGroup {Special Operations Soft Outflow} set sg "$o.Special Operations Soft Outflow" "$sg" SlotGroup Order 52 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Outflow Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Outflow Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Outflow} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Outflow Min} "$o" SlotGroup {Special Operations Soft Pool Elevations} set sg "$o.Special Operations Soft Pool Elevations" "$sg" SlotGroup Order 47 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Pool Elevation} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Pool Elevation Min} "$o" SlotGroup {Special Operations Soft Spill} set sg "$o.Special Operations Soft Spill" "$sg" SlotGroup Order 42 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Spill} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Spill Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Spill Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Spill} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Spill Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Spill Min} "$o" SlotGroup {Special Operations Soft Tailwater Elev} set sg "$o.Special Operations Soft Tailwater Elev" "$sg" SlotGroup Order 37 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Tailwater Elev Min} "$o" SlotGroup {Special Operations Soft Turbine Release} set sg "$o.Special Operations Soft Turbine Release" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Soft Max Turbine Release} "$sg" SlotGroup LocalSlot 1 {Special Operations Soft Max Turbine Release Max} "$sg" SlotGroup LocalSlot 2 {Special Operations Soft Max Turbine Release Min} "$sg" SlotGroup LocalSlot 3 {Special Operations Soft Min Turbine Release} "$sg" SlotGroup LocalSlot 4 {Special Operations Soft Min Turbine Release Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Soft Min Turbine Release Min} "$o" SlotGroup {CHJ Forecast} set sg "$o.CHJ Forecast" "$sg" SlotGroup Order 37 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {CHJ Forecast Outflow} "$sg" SlotGroup LocalSlot 1 {CHJ Forecast Outflow Max} "$sg" SlotGroup LocalSlot 2 {CHJ Forecast Outflow Min} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Fish Spill} set sg "$o.Fish Spill" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Fall Fish Spill Manual} "$sg" SlotGroup LocalSlot 1 {Fall Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 2 {Fall Fish Spill Manual Min} "$sg" SlotGroup LocalSlot 3 {Sumer Fish Spill Manual} "$sg" SlotGroup LocalSlot 4 {Summer Fish Spill Manual Max} "$sg" SlotGroup LocalSlot 5 {Summer Fish Spill Manual Min} "$o" SlotGroup {Flow Bands} set sg "$o.Flow Bands" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Daily High Flow Import} "$sg" SlotGroup LocalSlot 1 {Daily High Flow Import Max} "$sg" SlotGroup LocalSlot 2 {Daily High Flow Import Min} "$sg" SlotGroup LocalSlot 3 {Daily Low Flow Import} "$sg" SlotGroup LocalSlot 4 {Daily Low Flow Import Max} "$sg" SlotGroup LocalSlot 5 {Daily Low Flow Import Min} "$sg" SlotGroup LocalSlot 6 {Flow Bands Import} "$sg" SlotGroup LocalSlot 7 {Flow Bands Import Max} "$sg" SlotGroup LocalSlot 8 {Flow Bands Import Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 32 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 30 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 28 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Data Validation} set o "$ws.Data Validation" $ws SimObj $obj {DataObj} 775 1082 {Cyan} 1153 1488 689 679 "$o" geospatialCoords 0 0 689 679 "$o" objAttributes { \ } "$o" objOrd wsList 5582 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {ScalarSlot} {Validation Stop Run Failures} set s "$o.Validation Stop Run Failures" "$s" order 1 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Validation Sideflow Failures} set s "$o.Validation Sideflow Failures" "$s" order 1 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Validation Missing Data} set s "$o.Validation Missing Data" "$s" order 3 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Validation Special Operations Failures} set s "$o.Validation Special Operations Failures" "$s" order 4 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Validation Special Slots Failures} set s "$o.Validation Special Slots Failures" "$s" order 5 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Total Values Failed} set s "$o.Total Values Failed" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Total Values Passed} set s "$o.Total Values Passed" "$s" order 7 "$s" units 0 {%f} 2 "$s" value 16025 {NONE} "$o" {ScalarSlot} {Total Values Validated} set s "$o.Total Values Validated" "$s" order 8 "$s" units 0 {%f} 2 "$s" value 16025 {NONE} "$o" {ScalarSlot} {Validation Special Operations Soft Failures} set s "$o.Validation Special Operations Soft Failures" "$s" order 9 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Validation Special Slots Warning Only Failures} set s "$o.Validation Special Slots Warning Only Failures" "$s" order 10 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Initialization Successful} set s "$o.Initialization Successful" "$s" order 11 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Optimization Run Successful} set s "$o.Optimization Run Successful" "$s" order 12 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax 0 1 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {TableSlot} {EAS Acct Number to Slot Map} set s "$o.EAS Acct Number to Slot Map" "$s" order 13 "$s" resize 225 2 "$s" setRowLabels {Grand Coulee.Inflow} {Chief Joseph.Regulated Spill} {Grand Coulee.Regulated Spill} {Priest Rapids.Regulated Spill} {Rock Island.Regulated Spill} {Rocky Reach.Regulated Spill} {Wanapum.Regulated Spill} {Wells.Regulated Spill} {Grand Coulee.Tailwater Elevation} {Priest_Rapids_Constraints.CHJ_Forecast_Outflow} {Grand Coulee.Outflow} {Chief Joseph.Outflow} {Priest Rapids.Outflow} {Rock Island.Outflow} {Rocky Reach.Outflow} {Wanapum.Outflow} {Wells.Outflow} {Grand Coulee Constraints.Accumulated Exchange} {Chief Joseph Constraints.Accumulated Exchange} {Grand Coulee Constraints.Initial Uncoordinated Request} {Chief Joseph Constraints.Initial Uncoordinated Request} {Crab Creek.Inflow} {Wenatchee River.Inflow} {Entiat River.Inflow} {Methow River.Inflow} {Okanogan River.Inflow} {Chelan River.Inflow} {Grand Coulee.Hydrologic Inflow Adjust} {Chief Joseph.Hydrologic Inflow Adjust} {Wells.Hydrologic Inflow Adjust} {Rocky Reach.Hydrologic Inflow Adjust} {Rock Island.Hydrologic Inflow Adjust} {Wanapum.Hydrologic Inflow Adjust} {Priest Rapids.Hydrologic Inflow Adjust} {Requests.Total Nonfed Request} {Federal Constraints.Bias Negative Limit} {Federal Constraints.Bias Positive Limit} {Grand Coulee Constraints.Bias Negative Limit} {Grand Coulee Constraints.Bias Positive Limit} {Grand Coulee Constraints.Special Operations Max Pool Elevation} {Grand Coulee Constraints.Special Operations Min Pool Elevation} {Grand Coulee Constraints.Special Operations Max Generation} {Grand Coulee Constraints.Special Operations Min Generation} {Grand Coulee Constraints.Special Operations Max Tailwater Elev} {Grand Coulee Constraints.Special Operations Min Tailwater Elev} {Grand Coulee Constraints.Special Operations Max Outflow} {Grand Coulee Constraints.Special Operations Min Outflow} {Chief Joseph Constraints.Bias Negative Limit} {Chief Joseph Constraints.Bias Positive Limit} {Chief Joseph Constraints.Special Operations Max Pool Elevation} {Chief Joseph Constraints.Special Operations Min Pool Elevation} {Chief Joseph Constraints.Special Operations Max Generation} {Chief Joseph Constraints.Special Operations Min Generation} {Chief Joseph Constraints.Special Operations Max Tailwater Elev} {Chief Joseph Constraints.Special Operations Min Tailwater Elev} {Chief Joseph Constraints.Special Operations Max Outflow} {Chief Joseph Constraints.Special Operations Min Outflow} {Wells Constraints.Special Operations Max Pool Elevation} {Wells Constraints.Special Operations Min Pool Elevation} {Wells Constraints.Special Operations Max Generation} {Wells Constraints.Special Operations Min Generation} {Wells Constraints.Special Operations Max Tailwater Elev} {Wells Constraints.Special Operations Min Tailwater Elev} {Wells Constraints.Special Operations Max Outflow} {Wells Constraints.Special Operations Min Outflow} {Wells Constraints.Special Operations Max Spill} {Wells Constraints.Special Operations Min Spill} {Wells Constraints.Special Operations Max Turbine Release} {Wells Constraints.Special Operations Min Turbine Release} {Wells Constraints.Special Operations Soft Max Pool Elevation} {Wells Constraints.Special Operations Soft Min Pool Elevation} {Wells Constraints.Special Operations Soft Max Generation} {Wells Constraints.Special Operations Soft Min Generation} {Wells Constraints.Special Operations Soft Max Tailwater Elev} {Wells Constraints.Special Operations Soft Min Tailwater Elev} {Wells Constraints.Special Operations Soft Max Outflow} {Wells Constraints.Special Operations Soft Min Outflow} {Wells Constraints.Special Operations Soft Max Spill} {Wells Constraints.Special Operations Soft Min Spill} {Wells Constraints.Special Operations Soft Max Turbine Release} {Wells Constraints.Special Operations Soft Min Turbine Release} {Rocky Reach Constraints.Special Operations Max Pool Elevation} {Rocky Reach Constraints.Special Operations Min Pool Elevation} {Rocky Reach Constraints.Special Operations Max Generation} {Rocky Reach Constraints.Special Operations Min Generation} {Rocky Reach Constraints.Special Operations Max Tailwater Elev} {Rocky Reach Constraints.Special Operations Min Tailwater Elev} {Rocky Reach Constraints.Special Operations Max Outflow} {Rocky Reach Constraints.Special Operations Min Outflow} {Rocky Reach Constraints.Special Operations Max Spill} {Rocky Reach Constraints.Special Operations Min Spill} {Rocky Reach Constraints.Special Operations Max Turbine Release} {Rocky Reach Constraints.Special Operations Min Turbine Release} {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} {Rocky Reach Constraints.Special Operations Soft Min Pool Elevation} {Rocky Reach Constraints.Special Operations Soft Max Generation} {Rocky Reach Constraints.Special Operations Soft Min Generation} {Rocky Reach Constraints.Special Operations Soft Max Tailwater Elev} {Rocky Reach Constraints.Special Operations Soft Min Tailwater Elev} {Rocky Reach Constraints.Special Operations Soft Max Outflow} {Rocky Reach Constraints.Special Operations Soft Min Outflow} {Rocky Reach Constraints.Special Operations Soft Max Spill} {Rocky Reach Constraints.Special Operations Soft Min Spill} {Rocky Reach Constraints.Special Operations Soft Max Turbine Release} {Rocky Reach Constraints.Special Operations Soft Min Turbine Release} {Rock Island Constraints.Special Operations Max Pool Elevation} {Rock Island Constraints.Special Operations Min Pool Elevation} {Rock Island Constraints.Special Operations Max Generation} {Rock Island Constraints.Special Operations Min Generation} {Rock Island Constraints.Special Operations Max Tailwater Elev} {Rock Island Constraints.Special Operations Min Tailwater Elev} {Rock Island Constraints.Special Operations Max Outflow} {Rock Island Constraints.Special Operations Min Outflow} {Rock Island Constraints.Special Operations Max Spill} {Rock Island Constraints.Special Operations Min Spill} {Rock Island Constraints.Special Operations Max Turbine Release} {Rock Island Constraints.Special Operations Min Turbine Release} {Rock Island Constraints.Special Operations Soft Max Pool Elevation} {Rock Island Constraints.Special Operations Soft Min Pool Elevation} {Rock Island Constraints.Special Operations Soft Max Generation} {Rock Island Constraints.Special Operations Soft Min Generation} {Rock Island Constraints.Special Operations Soft Max Tailwater Elev} {Rock Island Constraints.Special Operations Soft Min Tailwater Elev} {Rock Island Constraints.Special Operations Soft Max Outflow} {Rock Island Constraints.Special Operations Soft Min Outflow} {Rock Island Constraints.Special Operations Soft Max Spill} {Rock Island Constraints.Special Operations Soft Min Spill} {Rock Island Constraints.Special Operations Soft Max Turbine Release} {Rock Island Constraints.Special Operations Soft Min Turbine Release} {Wanapum Constraints.Special Operations Max Pool Elevation wo Par Con} {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} {Wanapum Constraints.Special Operations Min Pool Elevation} {Wanapum Constraints.Special Operations Max Generation wo Par Con} {Wanapum Constraints.Special Operations Max Generation w Par Con} {Wanapum Constraints.Special Operations Min Generation wo Par Con} {Wanapum Constraints.Special Operations Min Generation w Par Con} {Wanapum Constraints.Special Operations Max Tailwater Elev} {Wanapum Constraints.Special Operations Min Tailwater Elev} {Wanapum Constraints.Special Operations Max Outflow} {Wanapum Constraints.Special Operations Min Outflow} {Wanapum Constraints.Special Operations Max Spill} {Wanapum Constraints.Special Operations Min Spill} {Wanapum Constraints.Special Operations Max Turbine Release} {Wanapum Constraints.Special Operations Min Turbine Release} {Wanapum Constraints.Special Operations Soft Max Pool Elevation} {Wanapum Constraints.Special Operations Soft Min Pool Elevation} {Wanapum Constraints.Special Operations Soft Max Generation} {Wanapum Constraints.Special Operations Soft Min Generation} {Wanapum Constraints.Special Operations Soft Max Tailwater Elev} {Wanapum Constraints.Special Operations Soft Min Tailwater Elev} {Wanapum Constraints.Special Operations Soft Max Outflow} {Wanapum Constraints.Special Operations Soft Min Outflow} {Wanapum Constraints.Special Operations Soft Max Spill} {Wanapum Constraints.Special Operations Soft Min Spill} {Wanapum Constraints.Special Operations Soft Max Turbine Release} {Wanapum Constraints.Special Operations Soft Min Turbine Release} {Priest Rapids Constraints.Special Operations Max Pool Elevation wo Par Con} {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} {Priest Rapids Constraints.Special Operations Min Pool Elevation} {Priest Rapids Constraints.Special Operations Max Generation wo Par Con} {Priest Rapids Constraints.Special Operations Max Generation w Par Con} {Priest Rapids Constraints.Special Operations Min Generation wo Par Con} {Priest Rapids Constraints.Special Operations Min Generation w Par Con} {Priest Rapids Constraints.Special Operations Max Tailwater Elev} {Priest Rapids Constraints.Special Operations Min Tailwater Elev} {Priest Rapids Constraints.Special Operations Max Outflow} {Priest Rapids Constraints.Special Operations Min Outflow} {Priest Rapids Constraints.Special Operations Max Spill} {Priest Rapids Constraints.Special Operations Min Spill} {Priest Rapids Constraints.Special Operations Max Turbine Release} {Priest Rapids Constraints.Special Operations Min Turbine Release} {Priest Rapids Constraints.Special Operations Soft Max Pool Elevation} {Priest Rapids Constraints.Special Operations Soft Min Pool Elevation} {Priest Rapids Constraints.Special Operations Soft Max Generation} {Priest Rapids Constraints.Special Operations Soft Min Generation} {Priest Rapids Constraints.Special Operations Soft Max Tailwater Elev} {Priest Rapids Constraints.Special Operations Soft Min Tailwater Elev} {Priest Rapids Constraints.Special Operations Soft Max Outflow} {Priest Rapids Constraints.Special Operations Soft Min Outflow} {Priest Rapids Constraints.Special Operations Soft Max Spill} {Priest Rapids Constraints.Special Operations Soft Min Spill} {Priest Rapids Constraints.Special Operations Soft Max Turbine Release} {Priest Rapids Constraints.Special Operations Soft Min Turbine Release} {Vernita Bar Constraints.PLF Manual} {Wells Constraints.Fish Spill Manual} {Wells Constraints.Summer Fish Spill Manual} {Rocky Reach Constraints.Fish Spill Manual} {Rock Island Constraints.Fish Spill Manual} {Wanapum Constraints.Fall Fish Spill Manual} {Wanapum Constraints.Summer Fish Spill Manual} {Priest Rapids Constraints.Fall Fish Spill Manual} {Priest Rapids Constraints.Summer Fish Spill Manual} {Wells Constraints.Desired Elevation Target} {Rocky Reach Constraints.Desired Elevation Target} {Rock Island Constraints.Desired Elevation Target} {Wanapum Constraints.Desired Elevation Target} {Priest Rapids Constraints.Desired Elevation Target} {Grand Coulee Constraints.Bias Actual} {Grand Coulee Constraints.Bias Scheduled} {Chief Joseph Constraints.Bias Actual} {Chief Joself Constraints.Bias Scheduled} {Chief Joseph Constraints.Discharge Estimate Adjustment} {Requests.Nonfed Request Adjustment} {Vernita Bar Constraints.RLF Daylight Max Flow} {Vernita Bar Constraints.RLF Daylight Min Flow} {Grand Coulee Constraints.Accumulated Exchange Target Max} {Grand Coulee Constraints.Accumulated Exchange Target Min} {Nonfederal Data.RW Testing} {Nonfederal Data.RW Testing 2} {Priest Rapids Constraints.Flow Bands Import} {Priest Rapids Constraints.Daily High Flow Import} {Priest Rapids Constraints.Daily Low Flow Import} {Federal Constraints.Accumulated Exchange Max} {Federal Constraints.Accumulated Exchange Min} {Grand Coulee Constraints.Accumulated Exchange Max} {Grand Coulee Constraints.Accumulated Exchange Min} {Grand Coulee.Pool Elevation} {Chief Joseph.Pool Elevation} {Wells.Pool Elevation} {Rocky Reach.Pool Elevation} {Rock Island.Pool Elevation} {Wanapum.Pool Elevation} {Priest Rapids.Pool Elevation} {Grand Coulee Constraints.Spill Exchange Energy} {Chief Joseph Constraints.Spill Exchange Energy} "$s" setColumnLabels {Pre-Run Period} {Run Period} "$s" setMaximums NaN NaN "$s" setMinimums NaN NaN "$s" setUnits 0 0 "$s" setUsrFormat {%f} {%f} "$s" setUsrPrecision {2} {2} "$s" row 0 4987 4988 "$s" row 1 340 340 "$s" row 2 341 341 "$s" row 3 219 219 "$s" row 4 220 220 "$s" row 5 221 221 "$s" row 6 222 222 "$s" row 7 223 223 "$s" row 8 234 234 "$s" row 9 1288 1288 "$s" row 10 241 241 "$s" row 11 240 240 "$s" row 12 242 242 "$s" row 13 243 243 "$s" row 14 244 244 "$s" row 15 245 245 "$s" row 16 426 426 "$s" row 17 447 447 "$s" row 18 448 448 "$s" row 19 4356 4356 "$s" row 20 2513 4357 "$s" row 21 4950 4950 "$s" row 22 4951 4968 "$s" row 23 4952 4966 "$s" row 24 4953 4963 "$s" row 25 4954 4962 "$s" row 26 4965 4965 "$s" row 27 5220 5220 "$s" row 28 5221 5221 "$s" row 29 5222 5222 "$s" row 30 5223 5223 "$s" row 31 5224 5224 "$s" row 32 5225 5225 "$s" row 33 5226 5226 "$s" row 34 5278 5278 "$s" row 35 5057 5057 "$s" row 36 5058 5058 "$s" row 37 5060 5060 "$s" row 38 5059 5059 "$s" row 39 1885 1885 "$s" row 40 5061 5061 "$s" row 41 1882 1882 "$s" row 42 1883 1883 "$s" row 43 1886 1886 "$s" row 44 5062 5062 "$s" row 45 5063 5063 "$s" row 46 5064 5064 "$s" row 47 5065 5065 "$s" row 48 5066 5066 "$s" row 49 1894 1894 "$s" row 50 2641 2641 "$s" row 51 1891 1891 "$s" row 52 1892 1892 "$s" row 53 1895 1895 "$s" row 54 5067 5067 "$s" row 55 5068 5068 "$s" row 56 5069 5069 "$s" row 57 1903 1903 "$s" row 58 2645 2645 "$s" row 59 1900 1900 "$s" row 60 1901 1901 "$s" row 61 1904 1904 "$s" row 62 5070 5070 "$s" row 63 5071 5071 "$s" row 64 5072 5072 "$s" row 65 2094 2094 "$s" row 66 2325 2325 "$s" row 67 2356 2356 "$s" row 68 3370 3370 "$s" row 69 3738 3738 "$s" row 70 3739 3739 "$s" row 71 3743 3743 "$s" row 72 3745 3745 "$s" row 73 3746 3746 "$s" row 74 3767 3767 "$s" row 75 3785 3785 "$s" row 76 3786 3786 "$s" row 77 3788 3788 "$s" row 78 3791 3791 "$s" row 79 3799 3799 "$s" row 80 3800 3800 "$s" row 81 1912 1912 "$s" row 82 2646 2646 "$s" row 83 1909 1909 "$s" row 84 1910 1910 "$s" row 85 1913 1913 "$s" row 86 5073 5073 "$s" row 87 5074 5074 "$s" row 88 5075 5075 "$s" row 89 3801 3801 "$s" row 90 3802 3802 "$s" row 91 3803 3803 "$s" row 92 3804 3804 "$s" row 93 3805 3805 "$s" row 94 3807 3807 "$s" row 95 3808 3808 "$s" row 96 3809 3809 "$s" row 97 3810 3810 "$s" row 98 3811 3811 "$s" row 99 3812 3812 "$s" row 100 3813 3813 "$s" row 101 3814 3814 "$s" row 102 3843 3843 "$s" row 103 3853 3853 "$s" row 104 3857 3857 "$s" row 105 1921 1921 "$s" row 106 2647 2647 "$s" row 107 1918 1918 "$s" row 108 1919 1919 "$s" row 109 1922 1922 "$s" row 110 5076 5076 "$s" row 111 5077 5077 "$s" row 112 5078 5078 "$s" row 113 3870 3870 "$s" row 114 3871 3871 "$s" row 115 3888 3888 "$s" row 116 3892 3892 "$s" row 117 3893 3893 "$s" row 118 3901 3901 "$s" row 119 3902 3902 "$s" row 120 3903 3903 "$s" row 121 3912 3912 "$s" row 122 3917 3917 "$s" row 123 3982 3982 "$s" row 124 3999 3999 "$s" row 125 4050 4050 "$s" row 126 4051 4051 "$s" row 127 4052 4052 "$s" row 128 4056 4056 "$s" row 129 4332 4332 "$s" row 130 1930 1930 "$s" row 131 2648 2648 "$s" row 132 4333 4333 "$s" row 133 1927 1927 "$s" row 134 4452 4452 "$s" row 135 1928 1928 "$s" row 136 1931 1931 "$s" row 137 5079 5079 "$s" row 138 5080 5080 "$s" row 139 5081 5081 "$s" row 140 4057 4057 "$s" row 141 4060 4060 "$s" row 142 4063 4063 "$s" row 143 4066 4066 "$s" row 144 4071 4071 "$s" row 145 4072 4072 "$s" row 146 4091 4091 "$s" row 147 4099 4099 "$s" row 148 4100 4100 "$s" row 149 4101 4101 "$s" row 150 4116 4116 "$s" row 151 4117 4117 "$s" row 152 4136 4136 "$s" row 153 4137 4137 "$s" row 154 4138 4138 "$s" row 155 4139 4139 "$s" row 156 4334 4334 "$s" row 157 1939 1939 "$s" row 158 2649 2649 "$s" row 159 4335 4335 "$s" row 160 1936 1936 "$s" row 161 4454 4454 "$s" row 162 1937 1937 "$s" row 163 1940 1940 "$s" row 164 5082 5082 "$s" row 165 5083 5083 "$s" row 166 5084 5084 "$s" row 167 4140 4140 "$s" row 168 4141 4141 "$s" row 169 4150 4150 "$s" row 170 4151 4151 "$s" row 171 4152 4152 "$s" row 172 4163 4163 "$s" row 173 4164 4164 "$s" row 174 4198 4198 "$s" row 175 4233 4233 "$s" row 176 4234 4234 "$s" row 177 4235 4235 "$s" row 178 4236 4236 "$s" row 179 4237 4237 "$s" row 180 4238 4238 "$s" row 181 4239 4239 "$s" row 182 4240 4240 "$s" row 183 2268 2268 "$s" row 184 1828 1828 "$s" row 185 1828 1828 "$s" row 186 1839 1839 "$s" row 187 1850 1850 "$s" row 188 1861 1861 "$s" row 189 1861 1861 "$s" row 190 1872 1872 "$s" row 191 1872 1872 "$s" row 192 4910 4910 "$s" row 193 4911 4911 "$s" row 194 4912 4912 "$s" row 195 4913 4913 "$s" row 196 4914 4914 "$s" row 197 3973 3973 "$s" row 198 4506 4506 "$s" row 199 3974 3974 "$s" row 200 4507 4507 "$s" row 201 4336 4336 "$s" row 202 4337 4337 "$s" row 203 4338 4338 "$s" row 204 4339 4339 "$s" row 205 4456 4456 "$s" row 206 4457 4457 "$s" row 207 4243 4243 "$s" row 208 4243 4243 "$s" row 209 4701 4701 "$s" row 210 4702 4702 "$s" row 211 4703 4703 "$s" row 212 333 333 "$s" row 213 353 353 "$s" row 214 5290 5290 "$s" row 215 5291 5291 "$s" row 216 19999 19999 "$s" row 217 29999 29999 "$s" row 218 39999 39999 "$s" row 219 49999 49999 "$s" row 220 59999 59999 "$s" row 221 69999 69999 "$s" row 222 79999 79999 "$s" row 223 4775 4775 "$s" row 224 4774 4774 "$o" {TableSlot} {EAS Acct Number Index Map} set s "$o.EAS Acct Number Index Map" "$s" order 14 "$s" resize 273 1 "$s" setRowLabels {49} {4987} {4988} {62} {340} {341} {219} {220} {221} {222} {223} {234} {1288} {241} {240} {242} {243} {244} {245} {426} {366} {370} {392} {404} {421} {447} {448} {565} {566} {567} {568} {569} {570} {2265} {4356} {2513} {4357} {2513} {4357} {4950} {4951} {4968} {4952} {4966} {4953} {4963} {4954} {4962} {4955} {4956} {4957} {4958} {4959} {4960} {4961} {4964} {4965} {4967} {4969} {4970} {4971} {4972} {4973} {4974} {4975} {4976} {4977} {4978} {4979} {4980} {4981} {4982} {5220} {5221} {5222} {5223} {5224} {5225} {5226} {5278} {5057} {5058} {5060} {5059} {1885} {5061} {1882} {1883} {1886} {5062} {5063} {5064} {5065} {5066} {1894} {2641} {1891} {1892} {1895} {5067} {5068} {5069} {1903} {2645} {1900} {1901} {1904} {5070} {5071} {5072} {2094} {2325} {2356} {3370} {3738} {3739} {3743} {3745} {3746} {3767} {3785} {3786} {3788} {3791} {3799} {3800} {1912} {2646} {1909} {1910} {1913} {5073} {5074} {5075} {3801} {3802} {3803} {3804} {3805} {3807} {3808} {3809} {3810} {3811} {3812} {3813} {3814} {3843} {3853} {3857} {1921} {2647} {1918} {1919} {1922} {5076} {5077} {5078} {3870} {3871} {3888} {3892} {3893} {3901} {3902} {3903} {3912} {3917} {3982} {3999} {4050} {4051} {4052} {4056} {4332} {1930} {2648} {4333} {1927} {4452} {1928} {1931} {5079} {5080} {5081} {4057} {4060} {4063} {4066} {4071} {4072} {4091} {4099} {4100} {4101} {4116} {4117} {4136} {4137} {4138} {4139} {4334} {1939} {2649} {4335} {1936} {4454} {1937} {1940} {5082} {5083} {5084} {4140} {4141} {4150} {4151} {4152} {4163} {4164} {4198} {4233} {4234} {4235} {4236} {4237} {4238} {4239} {4240} {2268} {1828} {1828} {1839} {1850} {1861} {1861} {1872} {1872} {4910} {4911} {4912} {4913} {4914} {3973} {4506} {3974} {4507} {4336} {4337} {4338} {4339} {4456} {4457} {2265} {2275} {2513} {4243} {4243} {4701} {4702} {4703} {333} {353} {5290} {5291} {19999} {29999} {39999} {49999} {59999} {69999} {79999} {4775} {4774} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 49 "$s" row 1 4987 "$s" row 2 4988 "$s" row 3 62 "$s" row 4 340 "$s" row 5 341 "$s" row 6 219 "$s" row 7 220 "$s" row 8 221 "$s" row 9 222 "$s" row 10 223 "$s" row 11 234 "$s" row 12 1288 "$s" row 13 241 "$s" row 14 240 "$s" row 15 242 "$s" row 16 243 "$s" row 17 244 "$s" row 18 245 "$s" row 19 426 "$s" row 20 366 "$s" row 21 370 "$s" row 22 392 "$s" row 23 404 "$s" row 24 421 "$s" row 25 447 "$s" row 26 448 "$s" row 27 565 "$s" row 28 566 "$s" row 29 567 "$s" row 30 568 "$s" row 31 569 "$s" row 32 570 "$s" row 33 2265 "$s" row 34 4356 "$s" row 35 2513 "$s" row 36 4357 "$s" row 37 2513 "$s" row 38 4357 "$s" row 39 4950 "$s" row 40 4951 "$s" row 41 4968 "$s" row 42 4952 "$s" row 43 4966 "$s" row 44 4953 "$s" row 45 4963 "$s" row 46 4954 "$s" row 47 4962 "$s" row 48 4955 "$s" row 49 4956 "$s" row 50 4957 "$s" row 51 4958 "$s" row 52 4959 "$s" row 53 4960 "$s" row 54 4961 "$s" row 55 4964 "$s" row 56 4965 "$s" row 57 4967 "$s" row 58 4969 "$s" row 59 4970 "$s" row 60 4971 "$s" row 61 4972 "$s" row 62 4973 "$s" row 63 4974 "$s" row 64 4975 "$s" row 65 4976 "$s" row 66 4977 "$s" row 67 4978 "$s" row 68 4979 "$s" row 69 4980 "$s" row 70 4981 "$s" row 71 4982 "$s" row 72 5220 "$s" row 73 5221 "$s" row 74 5222 "$s" row 75 5223 "$s" row 76 5224 "$s" row 77 5225 "$s" row 78 5226 "$s" row 79 5278 "$s" row 80 5057 "$s" row 81 5058 "$s" row 82 5060 "$s" row 83 5059 "$s" row 84 1885 "$s" row 85 5061 "$s" row 86 1882 "$s" row 87 1883 "$s" row 88 1886 "$s" row 89 5062 "$s" row 90 5063 "$s" row 91 5064 "$s" row 92 5065 "$s" row 93 5066 "$s" row 94 1894 "$s" row 95 2641 "$s" row 96 1891 "$s" row 97 1892 "$s" row 98 1895 "$s" row 99 5067 "$s" row 100 5068 "$s" row 101 5069 "$s" row 102 1903 "$s" row 103 2645 "$s" row 104 1900 "$s" row 105 1901 "$s" row 106 1904 "$s" row 107 5070 "$s" row 108 5071 "$s" row 109 5072 "$s" row 110 2094 "$s" row 111 2325 "$s" row 112 2356 "$s" row 113 3370 "$s" row 114 3738 "$s" row 115 3739 "$s" row 116 3743 "$s" row 117 3745 "$s" row 118 3746 "$s" row 119 3767 "$s" row 120 3785 "$s" row 121 3786 "$s" row 122 3788 "$s" row 123 3791 "$s" row 124 3799 "$s" row 125 3800 "$s" row 126 1912 "$s" row 127 2646 "$s" row 128 1909 "$s" row 129 1910 "$s" row 130 1913 "$s" row 131 5073 "$s" row 132 5074 "$s" row 133 5075 "$s" row 134 3801 "$s" row 135 3802 "$s" row 136 3803 "$s" row 137 3804 "$s" row 138 3805 "$s" row 139 3807 "$s" row 140 3808 "$s" row 141 3809 "$s" row 142 3810 "$s" row 143 3811 "$s" row 144 3812 "$s" row 145 3813 "$s" row 146 3814 "$s" row 147 3843 "$s" row 148 3853 "$s" row 149 3857 "$s" row 150 1921 "$s" row 151 2647 "$s" row 152 1918 "$s" row 153 1919 "$s" row 154 1922 "$s" row 155 5076 "$s" row 156 5077 "$s" row 157 5078 "$s" row 158 3870 "$s" row 159 3871 "$s" row 160 3888 "$s" row 161 3892 "$s" row 162 3893 "$s" row 163 3901 "$s" row 164 3902 "$s" row 165 3903 "$s" row 166 3912 "$s" row 167 3917 "$s" row 168 3982 "$s" row 169 3999 "$s" row 170 4050 "$s" row 171 4051 "$s" row 172 4052 "$s" row 173 4056 "$s" row 174 4332 "$s" row 175 1930 "$s" row 176 2648 "$s" row 177 4333 "$s" row 178 1927 "$s" row 179 4452 "$s" row 180 1928 "$s" row 181 1931 "$s" row 182 5079 "$s" row 183 5080 "$s" row 184 5081 "$s" row 185 4057 "$s" row 186 4060 "$s" row 187 4063 "$s" row 188 4066 "$s" row 189 4071 "$s" row 190 4072 "$s" row 191 4091 "$s" row 192 4099 "$s" row 193 4100 "$s" row 194 4101 "$s" row 195 4116 "$s" row 196 4117 "$s" row 197 4136 "$s" row 198 4137 "$s" row 199 4138 "$s" row 200 4139 "$s" row 201 4334 "$s" row 202 1939 "$s" row 203 2649 "$s" row 204 4335 "$s" row 205 1936 "$s" row 206 4454 "$s" row 207 1937 "$s" row 208 1940 "$s" row 209 5082 "$s" row 210 5083 "$s" row 211 5084 "$s" row 212 4140 "$s" row 213 4141 "$s" row 214 4150 "$s" row 215 4151 "$s" row 216 4152 "$s" row 217 4163 "$s" row 218 4164 "$s" row 219 4198 "$s" row 220 4233 "$s" row 221 4234 "$s" row 222 4235 "$s" row 223 4236 "$s" row 224 4237 "$s" row 225 4238 "$s" row 226 4239 "$s" row 227 4240 "$s" row 228 2268 "$s" row 229 1828 "$s" row 230 1828 "$s" row 231 1839 "$s" row 232 1850 "$s" row 233 1861 "$s" row 234 1861 "$s" row 235 1872 "$s" row 236 1872 "$s" row 237 4910 "$s" row 238 4911 "$s" row 239 4912 "$s" row 240 4913 "$s" row 241 4914 "$s" row 242 3973 "$s" row 243 4506 "$s" row 244 3974 "$s" row 245 4507 "$s" row 246 4336 "$s" row 247 4337 "$s" row 248 4338 "$s" row 249 4339 "$s" row 250 4456 "$s" row 251 4457 "$s" row 252 2265 "$s" row 253 2275 "$s" row 254 2513 "$s" row 255 4243 "$s" row 256 4243 "$s" row 257 4701 "$s" row 258 4702 "$s" row 259 4703 "$s" row 260 333 "$s" row 261 353 "$s" row 262 5290 "$s" row 263 5291 "$s" row 264 19999 "$s" row 265 29999 "$s" row 266 39999 "$s" row 267 49999 "$s" row 268 59999 "$s" row 269 69999 "$s" row 270 79999 "$s" row 271 4775 "$s" row 272 4774 "$o" {TableSlot} {EAS Acct Number to Acct Name Map} set s "$o.EAS Acct Number to Acct Name Map" "$s" order 15 "$s" resize 273 1 "$s" setRowLabels {PRD_GROSS_GEN_MWH} {GCL_INFLOW_ACTUAL} {GCL_INFLOW_ACTUAL} {WAN_GROSS_GEN_MWH} {CHJ_REG_SPILL_KCFSH} {GCL_REG_SPILL_KCFSH} {PRD_REG_SPILL_KCFSH} {RIS_REG_SPILL_KCFSH} {RRH_REG_SPILL_KCFSH} {WAN_REG_SPILL_KCFSH} {WEL_REG_SPILL_KCFSH} {GCL_TAILWATER_ELV_FT} {CHJ_DISC_EST} {GCL_TOTAL_DISC_KCFSH} {CHJ_TOTAL_DISC_KCFSH} {PRD_TOTAL_DISC_KCFSH} {RIS_TOTAL_DISC_KCFSH} {RRH_TOTAL_DISC_KCFSH} {WAN_TOTAL_DISC_KCFSH} {WEL_TOTAL_DISC_KCFSH} {CHJ_GROSS_GEN_MWH} {GCL_GROSS_GEN_MWH} {RIS_GROSS_GEN_MWH} {RRH_GROSS_GEN_MWH} {WEL_GROSS_GEN_MWH} {GCL_COORD_EXCH_ACCUM} {CHJ_COORD_EXCH_ACCUM} {} {} {} {} {} {} {CJAD_HOURLY_DISC_DEV} {GCL_HRLA_GEN_SCH} {CHJ_UNCOORD_REQ_MWH} {CHJ_HRLA_GEN_SCH} {CHJ_UNCOORD_REQ_MWH} {CHJ_HRLA_GEN_SCH} {USGS_CRAB_CREEK} {USGS_WENATCHEE_RIVER} {USGS_WENATCHEE_RIVER} {USGS_ENTIAT_RIVER} {USGS_ENTIAT_RIVER} {USGS_METHOW_RIVER} {USGS_METHOW_RIVER} {USGS_OKANOGAN_RIVER} {USGS_OKANOGAN_RIVER} {USGS_METHOW_GAGE_HGHT} {COLUMBIA_FLOW_EST_BIRQ2} {PEND OREILLE_FLOW_EST_WANQ2} {COLUMBIA _FLOW_EST_CIBW1} {SPOKANE _FLOW_EST_LLKW1} {COLUMBIA _FLOW_EST_GCDW1} {COLUMBIA _FLOW_EST_CHJW1} {COLUMBIA _FLOW_EST_WELW1} {CHELAN _FLOW_EST_CHDW1} {COLUMBIA _FLOW_EST_RRHW1} {COLUMBIA _FLOW_EST_WANW1} {COLUMBIA _FLOW_EST_PRWW1} {YAKIMA _FLOW_EST_KIOW1} {SNAKE _FLOW_EST_IHDW1} {WALLA WALLA _FLOW_EST_TCHW1} {COLUMBIA _FLOW_EST_MCDW1} {UMATILLA _FLOW_EST_PDTO3} {JOHN DAY _FLOW_EST_SERO3} {COLUMBIA _FLOW_EST_JDAO3} {DESCHUTES _FLOW_EST_MODO3} {KLICKITAT _FLOW_EST_PITW1} {WHITE SALMON _FLOW_EST_UNDW1} {HOOD _FLOW_EST_HODO3} {COLUMBIA _FLOW_EST_BONO3} {} {} {} {} {} {} {} {TOTL_HRLA_GEN_VALIDATED} {RW_FED_BIAS_NEGATIVE_LIMIT} {RW_FED_BIAS_POSITIVE_LIMIT} {RW_GCL_BIAS_NEGATIVE_LIMIT} {RW_GCL_BIAS_POSITIVE_LIMIT} {GCL_MAX_FBAY_ELEV_FT} {GCL_MIN_FBAY_ELEV_FT} {GCL_MAXIMUM_GEN_MW} {GCL_MINIMUM_GEN_MW} {GCL_MAX_TAIL_ELEV_FT} {GCL_MIN_TAIL_ELEV_FT} {RW_GCL_MAX_OUTFLOW} {RW_GCL_MIN_OUTFLOW} {RW_CHJ_BIAS_NEGATIVE_LIMIT} {RW_CHJ_BIAS_POSITIVE_LIMIT} {CHJ_MAX_FBAY_ELEV_FT} {CHJ_MIN_FBAY_ELEV_FT} {CHJ_MAXIMUM_GEN_MW} {CHJ_MINIMUM_GEN_MW} {CHJ_MAX_TAIL_ELEV_FT} {CHJ_MIN_TAIL_ELEV_FT} {RW_CHJ_MAX_OUTFLOW} {RW_CHJ_MIN_OUTFLOW} {WEL_MAX_FBAY_ELEV_FT} {WEL_MIN_FBAY_ELEV_FT} {WEL_MAXIMUM_GEN_MW} {WEL_MINIMUM_GEN_MW} {WEL_MAX_TAIL_ELEV_FT} {WEL_MIN_TAIL_ELEV_FT} {RW_WEL_MAX_OUTFLOW} {RW_WEL_MIN_OUTFLOW} {RW_WEL_SPEC_MX_SPILL} {RW_WEL_SPEC_MN_SPILL} {RW_WEL_SPEC_MX_TURB} {RW_WEL_SPEC_MN_TURB} {RW_WEL_SPEC_S_MX_ELEV} {RW_WEL_SPEC_S_MN_ELEV} {RW_WEL_SPEC_S_MX_GEN} {RW_WEL_SPEC_S_MN_GEN} {RW_WEL_SPEC_S_MAX_TW} {RW_WEL_SPEC_S_MIN_TW} {RW_WEL_SPEC_S_MX_OFL} {RW_WEL_SPEC_S_MN_OFL} {RW_WEL_SPEC_S_MX_SPL} {RW_WEL_SPEC_S_MN_SPL} {RW_WEL_SPEC_S_MX_TRL} {RW_WEL_SPEC_S_MN_TRL} {RRH_MAX_FBAY_ELEV_FT} {RRH_MIN_FBAY_ELEV_FT} {RRH_MAXIMUM_GEN_MW} {RRH_MINIMUM_GEN_MW} {RRH_MAX_TAIL_ELEV_FT} {RRH_MIN_TAIL_ELEV_FT} {RW_RRH_MAX_OUTFLOW} {RW_RRH_MIN_OUTFLOW} {RW_RRH_SPEC_MX_SPILL} {RW_RRH_SPEC_MN_SPILL} {RW_RRH_SPEC_MX_TURB} {RW_RRH_SPEC_MN_TURB} {RW_RRH_SPEC_S_MX_ELEV} {RW_RRH_SPEC_S_MN_ELEV} {RW_RRH_SPEC_S_MX_GEN} {RW_RRH_SPEC_S_MN_GEN} {RW_RRH_SPEC_S_MAX_TW} {RW_RRH_SPEC_S_MIN_TW} {RW_RRH_SPEC_S_MX_OFL} {RW_RRH_SPEC_S_MN_OFL} {RW_RRH_SPEC_S_MX_SPL} {RW_RRH_SPEC_S_MN_SPL} {RW_RRH_SPEC_S_MX_TRL} {RW_RRH_SPEC_S_MN_TRL} {RIS_MAX_FBAY_ELEV_FT} {RIS_MIN_FBAY_ELEV_FT} {RIS_MAXIMUM_GEN_MW} {RIS_MINIMUM_GEN_MW} {RIS_MAX_TAIL_ELEV_FT} {RIS_MIN_TAIL_ELEV_FT} {RW_RIS_MAX_OUTFLOW} {RW_RIS_MIN_OUTFLOW} {RW_RIS_SPEC_MX_SPILL} {RW_RIS_SPEC_MN_SPILL} {RW_RIS_SPEC_MX_TURB} {RW_RIS_SPEC_MN_TURB} {RW_RIS_SPEC_S_MX_ELEV} {RW_RIS_SPEC_S_MN_ELEV} {RW_RIS_SPEC_S_MX_GEN} {RW_RIS_SPEC_S_MN_GEN} {RW_RIS_SPEC_S_MAX_TW} {RW_RIS_SPEC_S_MIN_TW} {RW_RIS_SPEC_S_MX_OFL} {RW_RIS_SPEC_S_MN_OFL} {RW_RIS_SPEC_S_MX_SPL} {RW_RIS_SPEC_S_MN_SPL} {RW_RIS_SPEC_S_MX_TRL} {RW_RIS_SPEC_S_MN_TRL} {WAN_MAX_FBAY_ELEV_WO_FISH_OPS_FT} {WAN_MAX_FBAY_ELEV_FT} {WAN_MIN_FBAY_ELEV_FT} {WAN_MAX_GEN_WO_FISH_OPS_MW} {WAN_MAXIMUM_GEN_MW} {WAN_MIN_GEN_WO_FISH_OPS_MW} {WAN_MINIMUM_GEN_MW} {WAN_MAX_TAIL_FT} {WAN_MIN_TAIL_FT} {RW_WAN_MAX_OUTFLOW} {RW_WAN_MIN_OUTFLOW} {RW_WAN_SPEC_MX_SPILL} {RW_WAN_SPEC_MN_SPILL} {RW_WAN_SPEC_MX_TURB} {RW_WAN_SPEC_MN_TURB} {RW_WAN_SPEC_S_MX_ELEV} {RW_WAN_SPEC_S_MN_ELEV} {RW_WAN_SPEC_S_MX_GEN} {RW_WAN_SPEC_S_MN_GEN} {RW_WAN_SPEC_S_MAX_TW} {RW_WAN_SPEC_S_MIN_TW} {RW_WAN_SPEC_S_MX_OFL} {RW_WAN_SPEC_S_MN_OFL} {RW_WAN_SPEC_S_MX_SPL} {RW_WAN_SPEC_S_MN_SPL} {RW_WAN_SPEC_S_MX_TRL} {RW_WAN_SPEC_S_MN_TRL} {PRD_MAX_FBAY_ELEV_WO_FISH_OPS_FT} {PRD_MAX_FBAY_ELEV_FT} {PRD_MIN_FBAY_ELEV_FT} {PRD_MAX_GEN_WO_FISH_OPS_MW} {PRD_MAXIMUM_GEN_MW} {PRD_MIN_GEN_WO_FISH_OPS_MW} {PRD_MINIMUM_GEN_MW} {PRD_MAX_TAIL_ELEV_FT} {PRD_MIN_TAIL_ELEV_FT} {RW_PRD_MAX_OUTFLOW} {RW_PRD_MIN_OUTFLOW} {RW_PRD_SPEC_MX_SPILL} {RW_PRD_SPEC_MN_SPILL} {RW_PRD_SPEC_MX_TURB} {RW_PRD_SPEC_MN_TURB} {RW_PRD_SPEC_S_MX_ELEV} {RW_PRD_SPEC_S_MN_ELEV} {RW_PRD_SPEC_S_MX_GEN} {RW_PRD_SPEC_S_MN_GEN} {RW_PRD_SPEC_S_MAX_TW} {RW_PRD_SPEC_S_MIN_TW} {RW_PRD_SPEC_S_MX_OFL} {RW_PRD_SPEC_S_MN_OFL} {RW_PRD_SPEC_S_MX_SPL} {RW_PRD_SPEC_S_MN_SPL} {RW_PRD_SPEC_S_MX_TRL} {RW_PRD_SPEC_S_MN_TRL} {CJAD_ADJ_PROT_LEVEL} {WEL_SPILL_DISC_KCFS} {WEL_SPILL_DISC_KCFS} {RRH_SPILL_DISC_KCFS} {RIS_SPILL_DISC_KCFS} {WAN_SPILL_DISC_KCFS} {WAN_SPILL_DISC_KCFS} {PRD_SPILL_DISC_KCFS} {PRD_SPILL_DISC_KCFS} {WEL_DESIRED_ELEVATION_FT} {RRH_DESIRED_ELEVATION_FT} {RIS_DESIRED_ELEVATION_FT} {WAN_DESIRED_ELEVATION_FT} {PRD_DESIRED_ELEVATION_FT} {BPA_GCL_ACT_BIAS} {RW_GCL_BIAS_SCHED} {BPA_CHJ_ACT_BIAS} {RW_CHJ_BIAS_SCHED} {RW_CHJ_CONST_DISCH_EST_ADJ} {RW_REQ_NONFED_REQ_ADJ} {RW_VERNITA_BAR_RLF_DAY_MX_FLOW} {RW_VERNITA_BAR_RLF_DAY_MN_FLOW} {RW_GCL_ACCUM_EXCH_TARGET_MAX} {RW_GCL_ACCUM_EXCH_TARGET_MIN} {} {} {} {RW_TESTING} {RW_TESTING} {RW_PRD_CONSTRAINTS_FLOW_BANDS_IMPORT} {RW_PRD_CONSTRAINTS_DAILY_HI_FLOW_IMPORT} {RW_PRD_CONSTRAINTS_DAILY_LOW_FLOW_IMPORT} {MAX FED ACC EXCH} {MIN FED ACC EXCH} {MAX_GCL_ACC_EXCH} {MIN_GCL_ACC_EXCH} {GCL.PL.FORBY.HWMS} {AGC_S_FOREBAY_ELE_2} {AGC_S_FOREBAY_ELE_3} {AGC_S_FOREBAY_ELE_4} {AGC_S_FOREBAY_ELE_5} {AGC_S_FOREBAY_ELE_6} {AGC_S_FOREBAY_ELE_7} {GCL_TDG_SPL_SCH_MWH} {CHJ_TDG_SPL_SCH_MWH} "$s" setColumnLabels {} "$s" setMaximums NaN "$s" setMinimums NaN "$s" setUnits 0 "$s" setUsrFormat {%f} "$s" setUsrPrecision {2} "$s" row 0 49 "$s" row 1 4987 "$s" row 2 4988 "$s" row 3 62 "$s" row 4 340 "$s" row 5 341 "$s" row 6 219 "$s" row 7 220 "$s" row 8 221 "$s" row 9 222 "$s" row 10 223 "$s" row 11 234 "$s" row 12 1288 "$s" row 13 241 "$s" row 14 240 "$s" row 15 242 "$s" row 16 243 "$s" row 17 244 "$s" row 18 245 "$s" row 19 426 "$s" row 20 366 "$s" row 21 370 "$s" row 22 392 "$s" row 23 404 "$s" row 24 421 "$s" row 25 447 "$s" row 26 448 "$s" row 27 565 "$s" row 28 566 "$s" row 29 567 "$s" row 30 568 "$s" row 31 569 "$s" row 32 570 "$s" row 33 2265 "$s" row 34 4356 "$s" row 35 2513 "$s" row 36 4357 "$s" row 37 2513 "$s" row 38 4357 "$s" row 39 4950 "$s" row 40 4951 "$s" row 41 4968 "$s" row 42 4952 "$s" row 43 4966 "$s" row 44 4953 "$s" row 45 4963 "$s" row 46 4954 "$s" row 47 4962 "$s" row 48 4955 "$s" row 49 4956 "$s" row 50 4957 "$s" row 51 4958 "$s" row 52 4959 "$s" row 53 4960 "$s" row 54 4961 "$s" row 55 4964 "$s" row 56 4965 "$s" row 57 4967 "$s" row 58 4969 "$s" row 59 4970 "$s" row 60 4971 "$s" row 61 4972 "$s" row 62 4973 "$s" row 63 4974 "$s" row 64 4975 "$s" row 65 4976 "$s" row 66 4977 "$s" row 67 4978 "$s" row 68 4979 "$s" row 69 4980 "$s" row 70 4981 "$s" row 71 4982 "$s" row 72 5220 "$s" row 73 5221 "$s" row 74 5222 "$s" row 75 5223 "$s" row 76 5224 "$s" row 77 5225 "$s" row 78 5226 "$s" row 79 5278 "$s" row 80 5057 "$s" row 81 5058 "$s" row 82 5060 "$s" row 83 5059 "$s" row 84 1885 "$s" row 85 5061 "$s" row 86 1882 "$s" row 87 1883 "$s" row 88 1886 "$s" row 89 5062 "$s" row 90 5063 "$s" row 91 5064 "$s" row 92 5065 "$s" row 93 5066 "$s" row 94 1894 "$s" row 95 2641 "$s" row 96 1891 "$s" row 97 1892 "$s" row 98 1895 "$s" row 99 5067 "$s" row 100 5068 "$s" row 101 5069 "$s" row 102 1903 "$s" row 103 2645 "$s" row 104 1900 "$s" row 105 1901 "$s" row 106 1904 "$s" row 107 5070 "$s" row 108 5071 "$s" row 109 5072 "$s" row 110 2094 "$s" row 111 2325 "$s" row 112 2356 "$s" row 113 3370 "$s" row 114 3738 "$s" row 115 3739 "$s" row 116 3743 "$s" row 117 3745 "$s" row 118 3746 "$s" row 119 3767 "$s" row 120 3785 "$s" row 121 3786 "$s" row 122 3788 "$s" row 123 3791 "$s" row 124 3799 "$s" row 125 3800 "$s" row 126 1912 "$s" row 127 2646 "$s" row 128 1909 "$s" row 129 1910 "$s" row 130 1913 "$s" row 131 5073 "$s" row 132 5074 "$s" row 133 5075 "$s" row 134 3801 "$s" row 135 3802 "$s" row 136 3803 "$s" row 137 3804 "$s" row 138 3805 "$s" row 139 3807 "$s" row 140 3808 "$s" row 141 3809 "$s" row 142 3810 "$s" row 143 3811 "$s" row 144 3812 "$s" row 145 3813 "$s" row 146 3814 "$s" row 147 3843 "$s" row 148 3853 "$s" row 149 3857 "$s" row 150 1921 "$s" row 151 2647 "$s" row 152 1918 "$s" row 153 1919 "$s" row 154 1922 "$s" row 155 5076 "$s" row 156 5077 "$s" row 157 5078 "$s" row 158 3870 "$s" row 159 3871 "$s" row 160 3888 "$s" row 161 3892 "$s" row 162 3893 "$s" row 163 3901 "$s" row 164 3902 "$s" row 165 3903 "$s" row 166 3912 "$s" row 167 3917 "$s" row 168 3982 "$s" row 169 3999 "$s" row 170 4050 "$s" row 171 4051 "$s" row 172 4052 "$s" row 173 4056 "$s" row 174 4332 "$s" row 175 1930 "$s" row 176 2648 "$s" row 177 4333 "$s" row 178 1927 "$s" row 179 4452 "$s" row 180 1928 "$s" row 181 1931 "$s" row 182 5079 "$s" row 183 5080 "$s" row 184 5081 "$s" row 185 4057 "$s" row 186 4060 "$s" row 187 4063 "$s" row 188 4066 "$s" row 189 4071 "$s" row 190 4072 "$s" row 191 4091 "$s" row 192 4099 "$s" row 193 4100 "$s" row 194 4101 "$s" row 195 4116 "$s" row 196 4117 "$s" row 197 4136 "$s" row 198 4137 "$s" row 199 4138 "$s" row 200 4139 "$s" row 201 4334 "$s" row 202 1939 "$s" row 203 2649 "$s" row 204 4335 "$s" row 205 1936 "$s" row 206 4454 "$s" row 207 1937 "$s" row 208 1940 "$s" row 209 5082 "$s" row 210 5083 "$s" row 211 5084 "$s" row 212 4140 "$s" row 213 4141 "$s" row 214 4150 "$s" row 215 4151 "$s" row 216 4152 "$s" row 217 4163 "$s" row 218 4164 "$s" row 219 4198 "$s" row 220 4233 "$s" row 221 4234 "$s" row 222 4235 "$s" row 223 4236 "$s" row 224 4237 "$s" row 225 4238 "$s" row 226 4239 "$s" row 227 4240 "$s" row 228 2268 "$s" row 229 1828 "$s" row 230 1828 "$s" row 231 1839 "$s" row 232 1850 "$s" row 233 1861 "$s" row 234 1861 "$s" row 235 1872 "$s" row 236 1872 "$s" row 237 4910 "$s" row 238 4911 "$s" row 239 4912 "$s" row 240 4913 "$s" row 241 4914 "$s" row 242 3973 "$s" row 243 4506 "$s" row 244 3974 "$s" row 245 4507 "$s" row 246 4336 "$s" row 247 4337 "$s" row 248 4338 "$s" row 249 4339 "$s" row 250 4456 "$s" row 251 4457 "$s" row 252 2265 "$s" row 253 2275 "$s" row 254 2513 "$s" row 255 4243 "$s" row 256 4243 "$s" row 257 4701 "$s" row 258 4702 "$s" row 259 4703 "$s" row 260 333 "$s" row 261 353 "$s" row 262 5290 "$s" row 263 5291 "$s" row 264 19999 "$s" row 265 29999 "$s" row 266 39999 "$s" row 267 49999 "$s" row 268 59999 "$s" row 269 69999 "$s" row 270 79999 "$s" row 271 4775 "$s" row 272 4774 "$o" {ScalarSlot} {Validation Extended Period} set s "$o.Validation Extended Period" "$s" order 14 "$s" units 36 {%f} 2 "$s" value 144 {hr} "$s" isInteger "$o" {ScalarSlot} {Validation Use Extended Period} set s "$o.Validation Use Extended Period" "$s" order 15 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$s" isInteger "$o" SlotGroup {EAS Account Mapping} set sg "$o.EAS Account Mapping" "$sg" SlotGroup Order 16 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {EAS Acct Number Index Map} "$sg" SlotGroup LocalSlot 1 {EAS Acct Number to Acct Name Map} "$sg" SlotGroup LocalSlot 2 {EAS Acct Number to Slot Map} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Requests Data Validation} set o "$ws.Requests Data Validation" $ws SimObj $obj {DataObj} 669 1232 {Cyan} 1065 1659 601 850 "$o" geospatialCoords 0 0 601 850 "$o" objAttributes { \ } "$o" objOrd wsList 5583 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Nonfed Request Adjustment} set s "$o.Nonfed Request Adjustment" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Nonfed Request Adjustment Failure Count} set s "$o.Nonfed Request Adjustment Failure Count" "$s" order 4 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 7 "$s" units 0 {%f} 2 "$s" value NaN {NONE} "$o" {ScalarSlot} {Nonfed Request Adjustment Max} set s "$o.Nonfed Request Adjustment Max" "$s" order 4 "$s" units 35 {%f} 2 "$s" value 5500 {MWH} "$o" {ScalarSlot} {Nonfed Request Adjustment Min} set s "$o.Nonfed Request Adjustment Min" "$s" order 5 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Total Nonfed Request} set s "$o.Total Nonfed Request" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Total Nonfed Request Max} set s "$o.Total Nonfed Request Max" "$s" order 5 "$s" units 35 {%f} 2 "$s" value 5500 {MWH} "$o" {ScalarSlot} {Total Nonfed Request Min} set s "$o.Total Nonfed Request Min" "$s" order 8 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Total Nonfed Request Failure Count} set s "$o.Total Nonfed Request Failure Count" "$s" order 9 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Initial Nonfed Request} set s "$o.Initial Nonfed Request" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Initial Nonfed Request Max} set s "$o.Initial Nonfed Request Max" "$s" order 10 "$s" units 35 {%f} 2 "$s" value 5500 {MWH} "$o" {ScalarSlot} {Initial Nonfed Request Min} set s "$o.Initial Nonfed Request Min" "$s" order 11 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Initial Nonfed Request Failure Count} set s "$o.Initial Nonfed Request Failure Count" "$s" order 12 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 9 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Nonfed Request Adjustment Failure Count} "$sg" SlotGroup LocalSlot 1 {Total Nonfed Request Failure Count} "$sg" SlotGroup LocalSlot 2 {Initial Nonfed Request Failure Count} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Grand Coulee Data Validation} set o "$ws.Grand Coulee Data Validation" $ws SimObj $obj {DataObj} 713 1385 {Cyan} 819 1443 697 1163 "$o" geospatialCoords 0 0 697 1163 "$o" objAttributes { \ } "$o" objOrd wsList 5867 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Inflow} set s "$o.Inflow" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Inflow Max} set s "$o.Inflow Max" "$s" order 2 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Inflow Min} set s "$o.Inflow Min" "$s" order 3 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Inflow Failure Count} set s "$o.Inflow Failure Count" "$s" order 3 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Initial Uncoordinated Request} set s "$o.Initial Uncoordinated Request" "$s" order 3 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Initial Uncoordinated Request Max} set s "$o.Initial Uncoordinated Request Max" "$s" order 4 "$s" units 35 {%f} 2 "$s" value 5000 {MWH} "$o" {ScalarSlot} {Initial Uncoordinated Request Min} set s "$o.Initial Uncoordinated Request Min" "$s" order 5 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Initial Uncoordinated Request Failure Count} set s "$o.Initial Uncoordinated Request Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 3 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 4 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 5 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Tailwater Elevation} set s "$o.Tailwater Elevation" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Tailwater Elevation Max} set s "$o.Tailwater Elevation Max" "$s" order 6 "$s" units 2 {%f} 2 "$s" value 335.28000000000037 {m} "$o" {ScalarSlot} {Tailwater Elevation Min} set s "$o.Tailwater Elevation Min" "$s" order 7 "$s" units 2 {%f} 2 "$s" value 289.56000000000029 {m} "$o" {ScalarSlot} {Tailwater Elevation Failure Count} set s "$o.Tailwater Elevation Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 9 "$s" units 29 {%f} 2 "$s" value 6800 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 10 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 11 "$s" units 29 {%f} 2 "$s" value 6800 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 10 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 11 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 12 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 13 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 11 "$s" units 2 {%f} 2 "$s" value 393.19200000000041 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 12 "$s" units 2 {%f} 2 "$s" value 368.19840000000039 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 13 "$s" units 2 {%f} 2 "$s" value 393.19200000000041 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 14 "$s" units 2 {%f} 2 "$s" value 368.19840000000039 {m} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 12 "$s" units 2 {%f} 2 "$s" value 335.28000000000037 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 13 "$s" units 2 {%f} 2 "$s" value 289.56000000000029 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 14 "$s" units 2 {%f} 2 "$s" value 335.28000000000037 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 15 "$s" units 2 {%f} 2 "$s" value 289.56000000000029 {m} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 10 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 11 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 12 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 13 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 15 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Bias Negative Limit} set s "$o.Bias Negative Limit" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Negative Limit Max} set s "$o.Bias Negative Limit Max" "$s" order 11 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Bias Negative Limit Min} set s "$o.Bias Negative Limit Min" "$s" order 12 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {SeriesSlot} {Bias Positive Limit} set s "$o.Bias Positive Limit" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Positive Limit Max} set s "$o.Bias Positive Limit Max" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {ScalarSlot} {Bias Positive Limit Min} set s "$o.Bias Positive Limit Min" "$s" order 13 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Bias Actual} set s "$o.Bias Actual" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Actual Max} set s "$o.Bias Actual Max" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {ScalarSlot} {Bias Actual Min} set s "$o.Bias Actual Min" "$s" order 13 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {SeriesSlot} {Bias Scheduled} set s "$o.Bias Scheduled" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Scheduled Max} set s "$o.Bias Scheduled Max" "$s" order 12 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {ScalarSlot} {Bias Scheduled Min} set s "$o.Bias Scheduled Min" "$s" order 13 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {ScalarSlot} {Bias Actual Failure Count} set s "$o.Bias Actual Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Scheduled Failure Count} set s "$o.Bias Scheduled Failure Count" "$s" order 12 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Negative Limit Failure Count} set s "$o.Bias Negative Limit Failure Count" "$s" order 13 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Positive Limit Failure Count} set s "$o.Bias Positive Limit Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Accumulated Exchange} set s "$o.Accumulated Exchange" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accumulated Exchange Max} set s "$o.Accumulated Exchange Max" "$s" order 11 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Min} set s "$o.Accumulated Exchange Min" "$s" order 12 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Target Max} set s "$o.Accum Exchange Target Max" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Target Max Max} set s "$o.Accum Exchange Target Max Max" "$s" order 15 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Target Max Min} set s "$o.Accum Exchange Target Max Min" "$s" order 16 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Target Min} set s "$o.Accum Exchange Target Min" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Target Min Max} set s "$o.Accum Exchange Target Min Max" "$s" order 18 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Target Min Min} set s "$o.Accum Exchange Target Min Min" "$s" order 19 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Max} set s "$o.Accum Exchange Max" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Max Max} set s "$o.Accum Exchange Max Max" "$s" order 15 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Max Min} set s "$o.Accum Exchange Max Min" "$s" order 16 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Min} set s "$o.Accum Exchange Min" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Min Max} set s "$o.Accum Exchange Min Max" "$s" order 24 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Min Min} set s "$o.Accum Exchange Min Min" "$s" order 25 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Failure Count} set s "$o.Accumulated Exchange Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Max Failure Count} set s "$o.Accum Exchange Max Failure Count" "$s" order 13 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Min Failure Count} set s "$o.Accum Exchange Min Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Target Max Failure Count} set s "$o.Accum Exchange Target Max Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Target Min Failure Count} set s "$o.Accum Exchange Target Min Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 85 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 86 "$s" units 15 {%f} 2 "$s" value 141.58423295999995 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 87 "$s" units 15 {%f} 2 "$s" value -141.58423295999995 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 88 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 15 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 16 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 14 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 16 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 17 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 15 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 17 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 18 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 16 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Spill Exchange Energy} set s "$o.Spill Exchange Energy" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spill Exchange Energy Max} set s "$o.Spill Exchange Energy Max" "$s" order 17 "$s" units 35 {%f} 2 "$s" value 9999 {MWH} "$o" {ScalarSlot} {Spill Exchange Energy Min} set s "$o.Spill Exchange Energy Min" "$s" order 18 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Spill Exchange Energy Failure Count} set s "$o.Spill Exchange Energy Failure Count" "$s" order 17 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Inflows} set sg "$o.Inflows" "$sg" SlotGroup Order 4 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Inflow} "$sg" SlotGroup LocalSlot 1 {Inflow Max} "$sg" SlotGroup LocalSlot 2 {Inflow Min} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 2 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Inflow Failure Count} "$sg" SlotGroup LocalSlot 1 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 2 {Initial Uncoordinated Request Failure Count} "$sg" SlotGroup LocalSlot 3 {Tailwater Elevation Failure Count} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 11 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 12 {Bias Actual Failure Count} "$sg" SlotGroup LocalSlot 13 {Bias Negative Limit Failure Count} "$sg" SlotGroup LocalSlot 14 {Bias Positive Limit Failure Count} "$sg" SlotGroup LocalSlot 15 {Bias Scheduled Failure Count} "$sg" SlotGroup LocalSlot 16 {Accum Exchange Max Failure Count} "$sg" SlotGroup LocalSlot 17 {Accum Exchange Min Failure Count} "$sg" SlotGroup LocalSlot 18 {Accum Exchange Target Max Failure Count} "$sg" SlotGroup LocalSlot 19 {Accum Exchange Target Min Failure Count} "$sg" SlotGroup LocalSlot 20 {Accumulated Exchange Failure Count} "$sg" SlotGroup LocalSlot 21 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 22 {Regulated Spill Failure Count} "$sg" SlotGroup LocalSlot 23 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 24 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 25 {Spill Exchange Energy Failure Count} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 10 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Requests} set sg "$o.Requests" "$sg" SlotGroup Order 8 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Initial Uncoordinated Request} "$sg" SlotGroup LocalSlot 1 {Initial Uncoordinated Request Max} "$sg" SlotGroup LocalSlot 2 {Initial Uncoordinated Request Min} "$o" SlotGroup {Tailwater} set sg "$o.Tailwater" "$sg" SlotGroup Order 8 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Tailwater Elevation} "$sg" SlotGroup LocalSlot 1 {Tailwater Elevation Max} "$sg" SlotGroup LocalSlot 2 {Tailwater Elevation Min} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 6 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 7 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 8 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 9 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Bias} set sg "$o.Bias" "$sg" SlotGroup Order 16 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Bias Negative Limit} "$sg" SlotGroup LocalSlot 1 {Bias Negative Limit Max} "$sg" SlotGroup LocalSlot 2 {Bias Negative Limit Min} "$sg" SlotGroup LocalSlot 3 {Bias Positive Limit Max} "$sg" SlotGroup LocalSlot 4 {Bias Positive Limit} "$sg" SlotGroup LocalSlot 5 {Bias Positive Limit Min} "$sg" SlotGroup LocalSlot 6 {Bias Actual} "$sg" SlotGroup LocalSlot 7 {Bias Actual Max} "$sg" SlotGroup LocalSlot 8 {Bias Actual Min} "$sg" SlotGroup LocalSlot 9 {Bias Scheduled} "$sg" SlotGroup LocalSlot 10 {Bias Scheduled Max} "$sg" SlotGroup LocalSlot 11 {Bias Scheduled Min} "$o" SlotGroup {Accum Exchange} set sg "$o.Accum Exchange" "$sg" SlotGroup Order 26 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Accum Exchange Max} "$sg" SlotGroup LocalSlot 1 {Accum Exchange Max Max} "$sg" SlotGroup LocalSlot 2 {Accum Exchange Max Min} "$sg" SlotGroup LocalSlot 3 {Accum Exchange Min} "$sg" SlotGroup LocalSlot 4 {Accum Exchange Min Max} "$sg" SlotGroup LocalSlot 5 {Accum Exchange Min Min} "$sg" SlotGroup LocalSlot 6 {Accum Exchange Target Max} "$sg" SlotGroup LocalSlot 7 {Accum Exchange Target Max Max} "$sg" SlotGroup LocalSlot 8 {Accum Exchange Target Max Min} "$sg" SlotGroup LocalSlot 9 {Accum Exchange Target Min} "$sg" SlotGroup LocalSlot 10 {Accum Exchange Target Min Max} "$sg" SlotGroup LocalSlot 11 {Accum Exchange Target Min Min} "$sg" SlotGroup LocalSlot 12 {Accumulated Exchange} "$sg" SlotGroup LocalSlot 13 {Accumulated Exchange Max} "$sg" SlotGroup LocalSlot 14 {Accumulated Exchange Min} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 16 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 16 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 17 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 18 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" SlotGroup {Spill Exchange Slots} set sg "$o.Spill Exchange Slots" "$sg" SlotGroup Order 17 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Spill Exchange Energy} "$sg" SlotGroup LocalSlot 1 {Spill Exchange Energy Max} "$sg" SlotGroup LocalSlot 2 {Spill Exchange Energy Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Chief Joseph Data Validation} set o "$ws.Chief Joseph Data Validation" $ws SimObj $obj {DataObj} 452 1432 {Cyan} 559 1492 437 1212 "$o" geospatialCoords 0 0 437 1212 "$o" objAttributes { \ } "$o" objOrd wsList 5070 "$o" objSlotOrderType ListOrder_COLSORT 0 Ascend "$o" {SeriesSlot} {Initial Uncoordinated Request} set s "$o.Initial Uncoordinated Request" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Initial Uncoordinated Request Failure Count} set s "$o.Initial Uncoordinated Request Failure Count" "$s" order 2 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Initial Uncoordinated Request Max} set s "$o.Initial Uncoordinated Request Max" "$s" order 3 "$s" units 35 {%f} 2 "$s" value 2800 {MWH} "$o" {ScalarSlot} {Initial Uncoordinated Request Min} set s "$o.Initial Uncoordinated Request Min" "$s" order 4 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Discharge Estimate Initial} set s "$o.Discharge Estimate Initial" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Discharge Estimate Initial Failure Count} set s "$o.Discharge Estimate Initial Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 9 {NONE} "$o" {ScalarSlot} {Discharge Estimate Initial Max} set s "$o.Discharge Estimate Initial Max" "$s" order 7 "$s" units 15 {%f} 2 "$s" value 14158.423295999995 {cms} "$o" {ScalarSlot} {Discharge Estimate Initial Min} set s "$o.Discharge Estimate Initial Min" "$s" order 8 "$s" units 15 {%f} 2 "$s" value 283.1684659199999 {cms} "$o" {SeriesSlot} {Outflow} set s "$o.Outflow" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Outflow Max} set s "$o.Outflow Max" "$s" order 10 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Outflow Min} set s "$o.Outflow Min" "$s" order 11 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Outflow Failure Count} set s "$o.Outflow Failure Count" "$s" order 9 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Special Operations Max Generation} set s "$o.Special Operations Max Generation" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Generation} set s "$o.Special Operations Min Generation" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Generation Max} set s "$o.Special Operations Max Generation Max" "$s" order 15 "$s" units 29 {%f} 2 "$s" value 2800 {MW} "$o" {ScalarSlot} {Special Operations Max Generation Min} set s "$o.Special Operations Max Generation Min" "$s" order 16 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Max} set s "$o.Special Operations Min Generation Max" "$s" order 17 "$s" units 29 {%f} 2 "$s" value 2800 {MW} "$o" {ScalarSlot} {Special Operations Min Generation Min} set s "$o.Special Operations Min Generation Min" "$s" order 18 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Special Operations Max Outflow} set s "$o.Special Operations Max Outflow" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Outflow} set s "$o.Special Operations Min Outflow" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Outflow Max} set s "$o.Special Operations Max Outflow Max" "$s" order 21 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Max Outflow Min} set s "$o.Special Operations Max Outflow Min" "$s" order 22 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Max} set s "$o.Special Operations Min Outflow Max" "$s" order 23 "$s" units 15 {%f} 2 "$s" value 17698.029119999996 {cms} "$o" {ScalarSlot} {Special Operations Min Outflow Min} set s "$o.Special Operations Min Outflow Min" "$s" order 24 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {SeriesSlot} {Special Operations Max Pool Elevation} set s "$o.Special Operations Max Pool Elevation" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Pool Elevation} set s "$o.Special Operations Min Pool Elevation" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Pool Elevation Max} set s "$o.Special Operations Max Pool Elevation Max" "$s" order 27 "$s" units 2 {%f} 2 "$s" value 291.38880000000029 {m} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Min} set s "$o.Special Operations Max Pool Elevation Min" "$s" order 28 "$s" units 2 {%f} 2 "$s" value 289.56000000000029 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Max} set s "$o.Special Operations Min Pool Elevation Max" "$s" order 29 "$s" units 2 {%f} 2 "$s" value 291.38880000000029 {m} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Min} set s "$o.Special Operations Min Pool Elevation Min" "$s" order 30 "$s" units 2 {%f} 2 "$s" value 289.56000000000029 {m} "$o" {SeriesSlot} {Special Operations Max Tailwater Elev} set s "$o.Special Operations Max Tailwater Elev" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Special Operations Min Tailwater Elev} set s "$o.Special Operations Min Tailwater Elev" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Max} set s "$o.Special Operations Max Tailwater Elev Max" "$s" order 33 "$s" units 2 {%f} 2 "$s" value 249.93600000000026 {m} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Min} set s "$o.Special Operations Max Tailwater Elev Min" "$s" order 34 "$s" units 2 {%f} 2 "$s" value 234.69600000000025 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Max} set s "$o.Special Operations Min Tailwater Elev Max" "$s" order 35 "$s" units 2 {%f} 2 "$s" value 249.93600000000026 {m} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Min} set s "$o.Special Operations Min Tailwater Elev Min" "$s" order 36 "$s" units 2 {%f} 2 "$s" value 234.69600000000025 {m} "$o" {ScalarSlot} {Special Operations Max Generation Failure Count} set s "$o.Special Operations Max Generation Failure Count" "$s" order 37 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Outflow Failure Count} set s "$o.Special Operations Max Outflow Failure Count" "$s" order 38 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Pool Elevation Failure Count} set s "$o.Special Operations Max Pool Elevation Failure Count" "$s" order 39 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Max Tailwater Elev Failure Count} set s "$o.Special Operations Max Tailwater Elev Failure Count" "$s" order 40 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Generation Failure Count} set s "$o.Special Operations Min Generation Failure Count" "$s" order 41 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Outflow Failure Count} set s "$o.Special Operations Min Outflow Failure Count" "$s" order 42 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Pool Elevation Failure Count} set s "$o.Special Operations Min Pool Elevation Failure Count" "$s" order 43 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Special Operations Min Tailwater Elev Failure Count} set s "$o.Special Operations Min Tailwater Elev Failure Count" "$s" order 44 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Discharge Estimate Adjustment} set s "$o.Discharge Estimate Adjustment" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Discharge Estimate Adjustment Max} set s "$o.Discharge Estimate Adjustment Max" "$s" order 10 "$s" units 15 {%f} 2 "$s" value 14158.423295999995 {cms} "$o" {ScalarSlot} {Discharge Estimate Adjustment Min} set s "$o.Discharge Estimate Adjustment Min" "$s" order 11 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Discharge Estimate Adjustment Failure Count} set s "$o.Discharge Estimate Adjustment Failure Count" "$s" order 6 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Bias Negative Limit} set s "$o.Bias Negative Limit" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Negative Limit Max} set s "$o.Bias Negative Limit Max" "$s" order 50 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Bias Negative Limit Min} set s "$o.Bias Negative Limit Min" "$s" order 51 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {ScalarSlot} {Bias Positive Limit Max} set s "$o.Bias Positive Limit Max" "$s" order 52 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {SeriesSlot} {Bias Positive Limit} set s "$o.Bias Positive Limit" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Positive Limit Min} set s "$o.Bias Positive Limit Min" "$s" order 54 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Bias Actual} set s "$o.Bias Actual" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Actual Max} set s "$o.Bias Actual Max" "$s" order 56 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {ScalarSlot} {Bias Actual Min} set s "$o.Bias Actual Min" "$s" order 57 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {SeriesSlot} {Bias Scheduled} set s "$o.Bias Scheduled" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Scheduled Max} set s "$o.Bias Scheduled Max" "$s" order 59 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {ScalarSlot} {Bias Scheduled Min} set s "$o.Bias Scheduled Min" "$s" order 60 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {ScalarSlot} {Bias Actual Failure Count} set s "$o.Bias Actual Failure Count" "$s" order 61 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Negative Limit Failure Count} set s "$o.Bias Negative Limit Failure Count" "$s" order 62 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Positive Limit Failure Count} set s "$o.Bias Positive Limit Failure Count" "$s" order 63 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Scheduled Failure Count} set s "$o.Bias Scheduled Failure Count" "$s" order 64 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Accum Exchange Max} set s "$o.Accum Exchange Max" "$s" order 65 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Max Max} set s "$o.Accum Exchange Max Max" "$s" order 66 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Max Min} set s "$o.Accum Exchange Max Min" "$s" order 67 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Min} set s "$o.Accum Exchange Min" "$s" order 68 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Min Max} set s "$o.Accum Exchange Min Max" "$s" order 69 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Min Min} set s "$o.Accum Exchange Min Min" "$s" order 70 "$s" units 35 {%f} 2 "$s" value -10000 {MWH} "$o" {SeriesSlot} {Accum Exchange Target Max} set s "$o.Accum Exchange Target Max" "$s" order 71 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Target Max Max} set s "$o.Accum Exchange Target Max Max" "$s" order 72 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Target Max Min} set s "$o.Accum Exchange Target Max Min" "$s" order 73 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Target Min} set s "$o.Accum Exchange Target Min" "$s" order 74 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Target Min Max} set s "$o.Accum Exchange Target Min Max" "$s" order 75 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Target Min Min} set s "$o.Accum Exchange Target Min Min" "$s" order 76 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accumulated Exchange} set s "$o.Accumulated Exchange" "$s" order 77 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accumulated Exchange Max} set s "$o.Accumulated Exchange Max" "$s" order 78 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Min} set s "$o.Accumulated Exchange Min" "$s" order 79 "$s" units 35 {%f} 2 "$s" value -10000 {MWH} "$o" {ScalarSlot} {Accum Exchange Max Failure Count} set s "$o.Accum Exchange Max Failure Count" "$s" order 80 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Min Failure Count} set s "$o.Accum Exchange Min Failure Count" "$s" order 81 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Target Max Failure Count} set s "$o.Accum Exchange Target Max Failure Count" "$s" order 82 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Target Min Failure Count} set s "$o.Accum Exchange Target Min Failure Count" "$s" order 83 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accumulated Exchange Failure Count} set s "$o.Accumulated Exchange Failure Count" "$s" order 84 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Hydrologic Inflow Adjust} set s "$o.Hydrologic Inflow Adjust" "$s" order 85 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Hydrologic Inflow Adjust Max} set s "$o.Hydrologic Inflow Adjust Max" "$s" order 86 "$s" units 15 {%f} 2 "$s" value 707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Min} set s "$o.Hydrologic Inflow Adjust Min" "$s" order 87 "$s" units 15 {%f} 2 "$s" value -707.92116479999981 {cms} "$o" {ScalarSlot} {Hydrologic Inflow Adjust Failure Count} set s "$o.Hydrologic Inflow Adjust Failure Count" "$s" order 88 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Regulated Spill} set s "$o.Regulated Spill" "$s" order 89 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Regulated Spill Max} set s "$o.Regulated Spill Max" "$s" order 90 "$s" units 15 {%f} 2 "$s" value 283140.14907340793 {cms} "$o" {ScalarSlot} {Regulated Spill Min} set s "$o.Regulated Spill Min" "$s" order 91 "$s" units 15 {%f} 2 "$s" value 0 {cms} "$o" {ScalarSlot} {Regulated Spill Failure Count} set s "$o.Regulated Spill Failure Count" "$s" order 92 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Pool Elevation} set s "$o.Pool Elevation" "$s" order 93 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Pool Elevation Max} set s "$o.Pool Elevation Max" "$s" order 94 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Min} set s "$o.Pool Elevation Min" "$s" order 95 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Pool Elevation Failure Count} set s "$o.Pool Elevation Failure Count" "$s" order 96 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Desired Elevation Target} set s "$o.Desired Elevation Target" "$s" order 97 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Desired Elevation Target Max} set s "$o.Desired Elevation Target Max" "$s" order 98 "$s" units 2 {%f} 2 "$s" value 3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Min} set s "$o.Desired Elevation Target Min" "$s" order 99 "$s" units 2 {%f} 2 "$s" value -3047.6952000000033 {m} "$o" {ScalarSlot} {Desired Elevation Target Failure Count} set s "$o.Desired Elevation Target Failure Count" "$s" order 100 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {SeriesSlot} {Spill Exchange Energy} set s "$o.Spill Exchange Energy" "$s" order 101 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Spill Exchange Energy Max} set s "$o.Spill Exchange Energy Max" "$s" order 102 "$s" units 35 {%f} 2 "$s" value 9999 {MWH} "$o" {ScalarSlot} {Spill Exchange Energy Min} set s "$o.Spill Exchange Energy Min" "$s" order 103 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Spill Exchange Energy Failure Count} set s "$o.Spill Exchange Energy Failure Count" "$s" order 104 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 9 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Discharge Estimate Initial Failure Count} "$sg" SlotGroup LocalSlot 1 {Initial Uncoordinated Request Failure Count} "$sg" SlotGroup LocalSlot 2 {Outflow Failure Count} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Failure Count} "$sg" SlotGroup LocalSlot 4 {Special Operations Max Outflow Failure Count} "$sg" SlotGroup LocalSlot 5 {Special Operations Max Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 6 {Special Operations Max Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 7 {Special Operations Min Generation Failure Count} "$sg" SlotGroup LocalSlot 8 {Special Operations Min Outflow Failure Count} "$sg" SlotGroup LocalSlot 9 {Special Operations Min Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 10 {Special Operations Min Tailwater Elev Failure Count} "$sg" SlotGroup LocalSlot 11 {Discharge Estimate Adjustment Failure Count} "$sg" SlotGroup LocalSlot 12 {Accum Exchange Max Failure Count} "$sg" SlotGroup LocalSlot 13 {Accum Exchange Min Failure Count} "$sg" SlotGroup LocalSlot 14 {Accum Exchange Target Max Failure Count} "$sg" SlotGroup LocalSlot 15 {Accum Exchange Target Min Failure Count} "$sg" SlotGroup LocalSlot 16 {Accumulated Exchange Failure Count} "$sg" SlotGroup LocalSlot 17 {Bias Actual Failure Count} "$sg" SlotGroup LocalSlot 18 {Bias Negative Limit Failure Count} "$sg" SlotGroup LocalSlot 19 {Bias Positive Limit Failure Count} "$sg" SlotGroup LocalSlot 20 {Bias Scheduled Failure Count} "$sg" SlotGroup LocalSlot 21 {Hydrologic Inflow Adjust Failure Count} "$sg" SlotGroup LocalSlot 22 {Desired Elevation Target Failure Count} "$sg" SlotGroup LocalSlot 23 {Pool Elevation Failure Count} "$sg" SlotGroup LocalSlot 24 {Regulated Spill Failure Count} "$sg" SlotGroup LocalSlot 25 {Spill Exchange Energy Failure Count} "$o" SlotGroup {Outflows} set sg "$o.Outflows" "$sg" SlotGroup Order 8 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Outflow} "$sg" SlotGroup LocalSlot 1 {Outflow Max} "$sg" SlotGroup LocalSlot 2 {Outflow Min} "$o" SlotGroup {Requests} set sg "$o.Requests" "$sg" SlotGroup Order 9 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Initial Uncoordinated Request} "$sg" SlotGroup LocalSlot 1 {Initial Uncoordinated Request Max} "$sg" SlotGroup LocalSlot 2 {Initial Uncoordinated Request Min} "$o" SlotGroup {Special Operations Generation} set sg "$o.Special Operations Generation" "$sg" SlotGroup Order 39 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Generation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Generation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Generation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Generation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Generation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Generation Min} "$o" SlotGroup {Special Operations Outflow} set sg "$o.Special Operations Outflow" "$sg" SlotGroup Order 34 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Outflow} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Outflow} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Outflow Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Outflow Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Outflow Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Outflow Min} "$o" SlotGroup {Special Operations Pool Elevations} set sg "$o.Special Operations Pool Elevations" "$sg" SlotGroup Order 29 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Pool Elevation} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Pool Elevation Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Pool Elevation Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Pool Elevation Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Pool Elevation Min} "$o" SlotGroup {Special Operations Tailwater Elev} set sg "$o.Special Operations Tailwater Elev" "$sg" SlotGroup Order 24 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Special Operations Max Tailwater Elev} "$sg" SlotGroup LocalSlot 1 {Special Operations Min Tailwater Elev} "$sg" SlotGroup LocalSlot 2 {Special Operations Max Tailwater Elev Max} "$sg" SlotGroup LocalSlot 3 {Special Operations Max Tailwater Elev Min} "$sg" SlotGroup LocalSlot 4 {Special Operations Min Tailwater Elev Max} "$sg" SlotGroup LocalSlot 5 {Special Operations Min Tailwater Elev Min} "$o" SlotGroup {Discharge Estimate} set sg "$o.Discharge Estimate" "$sg" SlotGroup Order 14 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Discharge Estimate Initial} "$sg" SlotGroup LocalSlot 1 {Discharge Estimate Initial Max} "$sg" SlotGroup LocalSlot 2 {Discharge Estimate Initial Min} "$sg" SlotGroup LocalSlot 3 {Discharge Estimate Adjustment} "$sg" SlotGroup LocalSlot 4 {Discharge Estimate Adjustment Max} "$sg" SlotGroup LocalSlot 5 {Discharge Estimate Adjustment Min} "$o" SlotGroup {Bias} set sg "$o.Bias" "$sg" SlotGroup Order 45 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Bias Negative Limit} "$sg" SlotGroup LocalSlot 1 {Bias Negative Limit Max} "$sg" SlotGroup LocalSlot 2 {Bias Negative Limit Min} "$sg" SlotGroup LocalSlot 3 {Bias Positive Limit Max} "$sg" SlotGroup LocalSlot 4 {Bias Positive Limit} "$sg" SlotGroup LocalSlot 5 {Bias Positive Limit Min} "$sg" SlotGroup LocalSlot 6 {Bias Actual} "$sg" SlotGroup LocalSlot 7 {Bias Actual Max} "$sg" SlotGroup LocalSlot 8 {Bias Actual Min} "$sg" SlotGroup LocalSlot 9 {Bias Scheduled} "$sg" SlotGroup LocalSlot 10 {Bias Scheduled Max} "$sg" SlotGroup LocalSlot 11 {Bias Scheduled Min} "$o" SlotGroup {Accum Exchange} set sg "$o.Accum Exchange" "$sg" SlotGroup Order 34 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Accum Exchange Max} "$sg" SlotGroup LocalSlot 1 {Accum Exchange Max Max} "$sg" SlotGroup LocalSlot 2 {Accum Exchange Max Min} "$sg" SlotGroup LocalSlot 3 {Accum Exchange Min} "$sg" SlotGroup LocalSlot 4 {Accum Exchange Min Max} "$sg" SlotGroup LocalSlot 5 {Accum Exchange Min Min} "$sg" SlotGroup LocalSlot 6 {Accum Exchange Target Max} "$sg" SlotGroup LocalSlot 7 {Accum Exchange Target Max Max} "$sg" SlotGroup LocalSlot 8 {Accum Exchange Target Max Min} "$sg" SlotGroup LocalSlot 9 {Accum Exchange Target Min} "$sg" SlotGroup LocalSlot 10 {Accum Exchange Target Min Max} "$sg" SlotGroup LocalSlot 11 {Accum Exchange Target Min Min} "$sg" SlotGroup LocalSlot 12 {Accumulated Exchange} "$sg" SlotGroup LocalSlot 13 {Accumulated Exchange Max} "$sg" SlotGroup LocalSlot 14 {Accumulated Exchange Min} "$o" SlotGroup {Inflow Adjust} set sg "$o.Inflow Adjust" "$sg" SlotGroup Order 14 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Hydrologic Inflow Adjust} "$sg" SlotGroup LocalSlot 1 {Hydrologic Inflow Adjust Max} "$sg" SlotGroup LocalSlot 2 {Hydrologic Inflow Adjust Min} "$o" SlotGroup {Regulated Spill Slots} set sg "$o.Regulated Spill Slots" "$sg" SlotGroup Order 24 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Regulated Spill} "$sg" SlotGroup LocalSlot 1 {Regulated Spill Max} "$sg" SlotGroup LocalSlot 2 {Regulated Spill Min} "$o" SlotGroup {Pool Elevation Slots} set sg "$o.Pool Elevation Slots" "$sg" SlotGroup Order 22 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Pool Elevation} "$sg" SlotGroup LocalSlot 1 {Pool Elevation Max} "$sg" SlotGroup LocalSlot 2 {Pool Elevation Min} "$o" SlotGroup {Elevation Targets} set sg "$o.Elevation Targets" "$sg" SlotGroup Order 20 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Desired Elevation Target} "$sg" SlotGroup LocalSlot 1 {Desired Elevation Target Max} "$sg" SlotGroup LocalSlot 2 {Desired Elevation Target Min} "$o" SlotGroup {Spill Exchange Slots} set sg "$o.Spill Exchange Slots" "$sg" SlotGroup Order 19 "$sg" SlotGroup Expanded 0 "$sg" SlotGroup LocalSlot 0 {Spill Exchange Energy} "$sg" SlotGroup LocalSlot 1 {Spill Exchange Energy Max} "$sg" SlotGroup LocalSlot 2 {Spill Exchange Energy Min} "$o" hideSlots 0 hideOff hideEmptyOff set obj {Federal Data Validation} set o "$ws.Federal Data Validation" $ws SimObj $obj {DataObj} 545 1347 {Cyan} 651 1406 529 1126 "$o" geospatialCoords 0 0 529 1126 "$o" objAttributes { \ } "$o" objOrd wsList 5071 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" {SeriesSlot} {Bias Negative Limit} set s "$o.Bias Negative Limit" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Negative Limit Max} set s "$o.Bias Negative Limit Max" "$s" order 2 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {ScalarSlot} {Bias Negative Limit Min} set s "$o.Bias Negative Limit Min" "$s" order 3 "$s" units 29 {%f} 2 "$s" value -9999 {MW} "$o" {ScalarSlot} {Bias Positive Limit Max} set s "$o.Bias Positive Limit Max" "$s" order 4 "$s" units 29 {%f} 2 "$s" value 9999 {MW} "$o" {SeriesSlot} {Bias Positive Limit} set s "$o.Bias Positive Limit" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Bias Positive Limit Min} set s "$o.Bias Positive Limit Min" "$s" order 6 "$s" units 29 {%f} 2 "$s" value 0 {MW} "$o" {SeriesSlot} {Accum Exchange Max} set s "$o.Accum Exchange Max" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Max Max} set s "$o.Accum Exchange Max Max" "$s" order 8 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Max Min} set s "$o.Accum Exchange Max Min" "$s" order 9 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Min} set s "$o.Accum Exchange Min" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Min Max} set s "$o.Accum Exchange Min Max" "$s" order 11 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Min Min} set s "$o.Accum Exchange Min Min" "$s" order 12 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Target Max} set s "$o.Accum Exchange Target Max" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Target Max Max} set s "$o.Accum Exchange Target Max Max" "$s" order 14 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Target Max Min} set s "$o.Accum Exchange Target Max Min" "$s" order 15 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accum Exchange Target Min} set s "$o.Accum Exchange Target Min" "$s" order 16 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accum Exchange Target Min Max} set s "$o.Accum Exchange Target Min Max" "$s" order 17 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accum Exchange Target Min Min} set s "$o.Accum Exchange Target Min Min" "$s" order 18 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {SeriesSlot} {Accumulated Exchange} set s "$o.Accumulated Exchange" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 0 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {ScalarSlot} {Accumulated Exchange Max} set s "$o.Accumulated Exchange Max" "$s" order 20 "$s" units 35 {%f} 2 "$s" value 36921 {MWH} "$o" {ScalarSlot} {Accumulated Exchange Min} set s "$o.Accumulated Exchange Min" "$s" order 21 "$s" units 35 {%f} 2 "$s" value 0 {MWH} "$o" {ScalarSlot} {Accum Exchange Max Failure Count} set s "$o.Accum Exchange Max Failure Count" "$s" order 22 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Min Failure Count} set s "$o.Accum Exchange Min Failure Count" "$s" order 23 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Target Max Failure Count} set s "$o.Accum Exchange Target Max Failure Count" "$s" order 24 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accum Exchange Target Min Failure Count} set s "$o.Accum Exchange Target Min Failure Count" "$s" order 25 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Accumulated Exchange Failure Count} set s "$o.Accumulated Exchange Failure Count" "$s" order 26 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Negative Limit Failure Count} set s "$o.Bias Negative Limit Failure Count" "$s" order 4 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" {ScalarSlot} {Bias Positive Limit Failure Count} set s "$o.Bias Positive Limit Failure Count" "$s" order 5 "$s" units 0 {%f} 2 "$s" value 0 {NONE} "$o" SlotGroup {Bias} set sg "$o.Bias" "$sg" SlotGroup Order 27 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Bias Negative Limit} "$sg" SlotGroup LocalSlot 1 {Bias Negative Limit Max} "$sg" SlotGroup LocalSlot 2 {Bias Negative Limit Min} "$sg" SlotGroup LocalSlot 3 {Bias Positive Limit Max} "$sg" SlotGroup LocalSlot 4 {Bias Positive Limit} "$sg" SlotGroup LocalSlot 5 {Bias Positive Limit Min} "$o" SlotGroup {Accum Exchange} set sg "$o.Accum Exchange" "$sg" SlotGroup Order 22 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Accum Exchange Max} "$sg" SlotGroup LocalSlot 1 {Accum Exchange Max Max} "$sg" SlotGroup LocalSlot 2 {Accum Exchange Max Min} "$sg" SlotGroup LocalSlot 3 {Accum Exchange Min} "$sg" SlotGroup LocalSlot 4 {Accum Exchange Min Max} "$sg" SlotGroup LocalSlot 5 {Accum Exchange Min Min} "$sg" SlotGroup LocalSlot 6 {Accum Exchange Target Max} "$sg" SlotGroup LocalSlot 7 {Accum Exchange Target Max Max} "$sg" SlotGroup LocalSlot 8 {Accum Exchange Target Max Min} "$sg" SlotGroup LocalSlot 9 {Accum Exchange Target Min} "$sg" SlotGroup LocalSlot 10 {Accum Exchange Target Min Max} "$sg" SlotGroup LocalSlot 11 {Accum Exchange Target Min Min} "$sg" SlotGroup LocalSlot 12 {Accumulated Exchange} "$sg" SlotGroup LocalSlot 13 {Accumulated Exchange Max} "$sg" SlotGroup LocalSlot 14 {Accumulated Exchange Min} "$o" SlotGroup {Failure Counts} set sg "$o.Failure Counts" "$sg" SlotGroup Order 10 "$sg" SlotGroup Expanded 1 "$sg" SlotGroup LocalSlot 0 {Accum Exchange Max Failure Count} "$sg" SlotGroup LocalSlot 1 {Accum Exchange Min Failure Count} "$sg" SlotGroup LocalSlot 2 {Accum Exchange Target Max Failure Count} "$sg" SlotGroup LocalSlot 3 {Accum Exchange Target Min Failure Count} "$sg" SlotGroup LocalSlot 4 {Accumulated Exchange Failure Count} "$sg" SlotGroup LocalSlot 5 {Bias Negative Limit Failure Count} "$sg" SlotGroup LocalSlot 6 {Bias Positive Limit Failure Count} "$o" hideSlots 0 hideOff hideEmptyOff # Section: Objects/Snapshots set obj {Baseline} set o "$ws.Baseline" $ws SimObj $obj {SnapShotObj} 790 65 {} 16 31 0 0 "$o" geospatialCoords 0 0 0 0 "$o" objAttributes { \ } "$o" objFlags 1 "$o" creationTimestamp {03-16-2017 07:29:30} "$o" objOrd wsList 5072 "$o" objSlotOrderType ListOrder_DEFAULT 0 Ascend "$o" {SeriesSlot} {Chief Joseph Constraints_Bias} set s "$o.Chief Joseph Constraints_Bias" "$s" order 500 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Federal Constraints_Bias} set s "$o.Federal Constraints_Bias" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee Constraints_Bias} set s "$o.Grand Coulee Constraints_Bias" "$s" order 16 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax -2500 2500 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Energy In Storage} set s "$o.Chief Joseph_Energy In Storage" "$s" order 1 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 29338.950000000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Nonfederal Data_Energy In Storage} set s "$o.Nonfederal Data_Energy In Storage" "$s" order 17 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Energy In Storage} set s "$o.Priest Rapids_Energy In Storage" "$s" order 19 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 3722.9499999999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Energy In Storage} set s "$o.Rock Island_Energy In Storage" "$s" order 30 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 623 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Energy In Storage} set s "$o.Rocky Reach_Energy In Storage" "$s" order 38 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 3283 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Energy In Storage} set s "$o.Wanapum_Energy In Storage" "$s" order 48 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 12260 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Energy In Storage} set s "$o.Wells_Energy In Storage" "$s" order 56 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 7538.9499999999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Chief Joseph_Inflow} set s "$o.Chief Joseph_Inflow" "$s" order 2 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Grand Coulee_Inflow} set s "$o.Grand Coulee_Inflow" "$s" order 9 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Priest Rapids_Inflow} set s "$o.Priest Rapids_Inflow" "$s" order 20 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Rock Island_Inflow} set s "$o.Rock Island_Inflow" "$s" order 31 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Rocky Reach_Inflow} set s "$o.Rocky Reach_Inflow" "$s" order 39 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Vernita Bar_Inflow} set s "$o.Vernita Bar_Inflow" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Wanapum_Inflow} set s "$o.Wanapum_Inflow" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SimObjMultiSlot} {Wells_Inflow} set s "$o.Wells_Inflow" "$s" order 57 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Requests_Nonfed Delivered Energy} set s "$o.Requests_Nonfed Delivered Energy" "$s" order 27 "$s" isUserDefinedOptVariable "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax 0 10000 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Nonfederal Data_NonFederal Energy In Storage Cumulative} set s "$o.Nonfederal Data_NonFederal Energy In Storage Cumulative" "$s" order 18 "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Outflow} set s "$o.Chief Joseph_Outflow" "$s" order 3 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Outflow} set s "$o.Grand Coulee_Outflow" "$s" order 10 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Outflow} set s "$o.Priest Rapids_Outflow" "$s" order 21 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999995 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Outflow} set s "$o.Rock Island_Outflow" "$s" order 32 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Outflow} set s "$o.Rocky Reach_Outflow" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Vernita Bar_Outflow} set s "$o.Vernita Bar_Outflow" "$s" order 47 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Outflow} set s "$o.Wanapum_Outflow" "$s" order 50 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Outflow} set s "$o.Wells_Outflow" "$s" order 58 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 14158.423295999995 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Pool Elevation} set s "$o.Chief Joseph_Pool Elevation" "$s" order 4 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 288.03600000000029 291.37356000000034 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Pool Elevation} set s "$o.Grand Coulee_Pool Elevation" "$s" order 11 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 368.2136400000004 393.17676000000046 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Pool Elevation} set s "$o.Priest Rapids_Pool Elevation" "$s" order 22 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 146.77644000000015 149.03196000000014 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Pool Elevation} set s "$o.Rock Island_Pool Elevation" "$s" order 33 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 185.63844000000017 186.82716000000022 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Pool Elevation} set s "$o.Rocky Reach_Pool Elevation" "$s" order 41 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 214.28964000000022 215.47836000000024 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Pool Elevation} set s "$o.Wanapum_Pool Elevation" "$s" order 51 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 164.91204000000016 174.33036000000018 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Pool Elevation} set s "$o.Wells_Pool Elevation" "$s" order 59 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 235.01604000000023 238.33836000000028 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Power} set s "$o.Chief Joseph_Power" "$s" order 5 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 2732.9000000000001 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Power} set s "$o.Grand Coulee_Power" "$s" order 12 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 6504.0655809999998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Power} set s "$o.Priest Rapids_Power" "$s" order 23 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 981 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Power} set s "$o.Rock Island_Power" "$s" order 34 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 915 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Power} set s "$o.Rocky Reach_Power" "$s" order 42 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1461 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Power} set s "$o.Wanapum_Power" "$s" order 52 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1286 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Power} set s "$o.Wells_Power" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 29 {%f} 2 "$s" minMax 0 1037 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Power Coefficient} set s "$o.Chief Joseph_Power Coefficient" "$s" order 6 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Power Coefficient} set s "$o.Grand Coulee_Power Coefficient" "$s" order 13 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Power Coefficient} set s "$o.Priest Rapids_Power Coefficient" "$s" order 24 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Power Coefficient} set s "$o.Rock Island_Power Coefficient" "$s" order 35 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Power Coefficient} set s "$o.Rocky Reach_Power Coefficient" "$s" order 43 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Power Coefficient} set s "$o.Wanapum_Power Coefficient" "$s" order 53 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 5 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Power Coefficient} set s "$o.Wells_Power Coefficient" "$s" order 61 "$s" cvg 2 0.0001 "$s" unit 31 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Regulated Spill} set s "$o.Chief Joseph_Regulated Spill" "$s" order 7 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Regulated Spill} set s "$o.Grand Coulee_Regulated Spill" "$s" order 14 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Regulated Spill} set s "$o.Priest Rapids_Regulated Spill" "$s" order 25 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Regulated Spill} set s "$o.Rock Island_Regulated Spill" "$s" order 36 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Regulated Spill} set s "$o.Rocky Reach_Regulated Spill" "$s" order 44 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Regulated Spill} set s "$o.Wanapum_Regulated Spill" "$s" order 54 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Regulated Spill} set s "$o.Wells_Regulated Spill" "$s" order 62 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 11326.738636799997 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Chief Joseph_Tailwater Elevation} set s "$o.Chief Joseph_Tailwater Elevation" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 235.01604000000023 246.41556000000028 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Tailwater Elevation} set s "$o.Grand Coulee_Tailwater Elevation" "$s" order 500 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 283.47924000000029 304.14468000000033 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Tailwater Elevation} set s "$o.Priest Rapids_Tailwater Elevation" "$s" order 28 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 118.88724000000013 140.80236000000014 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Tailwater Elevation} set s "$o.Rock Island_Tailwater Elevation" "$s" order 40 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 164.60724000000016 177.37531200000021 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Tailwater Elevation} set s "$o.Rocky Reach_Tailwater Elevation" "$s" order 49 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 185.63844000000017 192.2282160000002 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Tailwater Elevation} set s "$o.Wanapum_Tailwater Elevation" "$s" order 60 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 146.77644000000015 158.40456000000017 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Tailwater Elevation} set s "$o.Wells_Tailwater Elevation" "$s" order 69 "$s" cvg 2 0.0001 "$s" unit 3 {%f} 2 "$s" minMax 214.28964000000022 225.75012000000024 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Requests_Total Delivered Energy} set s "$o.Requests_Total Delivered Energy" "$s" order 28 "$s" computedByExpr 6 {$ "Grand Coulee Constraints.Delivered Energy" [@"t"] + $ "Chief Joseph Constraints.Delivered Energy" [@"t"] + $ "Requests.Nonfed Delivered Energy" [@"t"]} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Requests_Total Nonfed Generation} set s "$o.Requests_Total Nonfed Generation" "$s" order 29 "$s" computedByExpr 6 {FOR ( OBJECT nonFedRes IN { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ nonFedRes & "Energy" [@"t"]\ ENDFOR} "$s" cvg 2 0.0001 "$s" unit 35 {%f} 2 "$s" minMax NaN NaN "$s" setCSeries {04-27-2017 15:00:00} 1 1 HOUR -1 NaN 2 "$s" exprEvaluationDates 1 HOUR "$s" syncWithRun-InclInitTstepInRunPeriod 0 "$o" {SeriesSlot} {Chief Joseph_Turbine Release} set s "$o.Chief Joseph_Turbine Release" "$s" order 8 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 6294.2686604697583 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Grand Coulee_Turbine Release} set s "$o.Grand Coulee_Turbine Release" "$s" order 15 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 7511.0435585279984 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Priest Rapids_Turbine Release} set s "$o.Priest Rapids_Turbine Release" "$s" order 26 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5097.0323865599985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rock Island_Turbine Release} set s "$o.Rock Island_Turbine Release" "$s" order 37 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 6456.241022975998 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Rocky Reach_Turbine Release} set s "$o.Rocky Reach_Turbine Release" "$s" order 45 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5804.9535513599985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wanapum_Turbine Release} set s "$o.Wanapum_Turbine Release" "$s" order 55 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 4955.4481535999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 "$o" {SeriesSlot} {Wells_Turbine Release} set s "$o.Wells_Turbine Release" "$s" order 63 "$s" cvg 2 0.0001 "$s" unit 18 {%f} 2 "$s" minMax 0 5663.3693183999985 "$s" setCSeries {04-27-2017 14:00:00} 1 1 HOUR -1 NaN 2 # Section: Object Relationships set obj {Wells} set o "$ws.Wells" set obj {WEL to RRH} set o "$ws.WEL to RRH" set obj {Rocky Reach} set o "$ws.Rocky Reach" set obj {Rocky Reach Constraints} set o "$ws.Rocky Reach Constraints" set obj {Wells Constraints} set o "$ws.Wells Constraints" set obj {Rock Island} set o "$ws.Rock Island" set obj {Rock Island Constraints} set o "$ws.Rock Island Constraints" set obj {RRH to RIS} set o "$ws.RRH to RIS" set obj {RIS to WAN} set o "$ws.RIS to WAN" set obj {Wanapum Constraints} set o "$ws.Wanapum Constraints" set obj {Wanapum} set o "$ws.Wanapum" set obj {Priest Rapids} set o "$ws.Priest Rapids" set obj {WAN to PRD} set o "$ws.WAN to PRD" set obj {Priest Rapids Constraints} set o "$ws.Priest Rapids Constraints" set obj {Grand Coulee} set o "$ws.Grand Coulee" set obj {Chief Joseph} set o "$ws.Chief Joseph" set obj {GCL to CHJ} set o "$ws.GCL to CHJ" set obj {CHJ to WEL} set o "$ws.CHJ to WEL" set obj {Chief Joseph Constraints} set o "$ws.Chief Joseph Constraints" set obj {Grand Coulee Constraints} set o "$ws.Grand Coulee Constraints" set obj {Requests} set o "$ws.Requests" set obj {Vernita Bar} set o "$ws.Vernita Bar" set obj {Vernita Bar Constraints} set o "$ws.Vernita Bar Constraints" set obj {Methow River} set o "$ws.Methow River" set obj {Okanogan River} set o "$ws.Okanogan River" set obj {Entiat River} set o "$ws.Entiat River" set obj {Wenatchee River} set o "$ws.Wenatchee River" set obj {Crab Creek} set o "$ws.Crab Creek" set obj {Federal Constraints} set o "$ws.Federal Constraints" set obj {Chelan River} set o "$ws.Chelan River" set obj {Constraint Evaluation} set o "$ws.Constraint Evaluation" set obj {Nonfederal Data} set o "$ws.Nonfederal Data" set obj {Dates} set o "$ws.Dates" set obj {Wells Data Validation} set o "$ws.Wells Data Validation" set obj {Rocky Reach Data Validation} set o "$ws.Rocky Reach Data Validation" set obj {Rock Island Data Validation} set o "$ws.Rock Island Data Validation" set obj {Wanapum Data Validation} set o "$ws.Wanapum Data Validation" set obj {Priest Rapids Data Validation} set o "$ws.Priest Rapids Data Validation" set obj {Data Validation} set o "$ws.Data Validation" set obj {Requests Data Validation} set o "$ws.Requests Data Validation" set obj {Grand Coulee Data Validation} set o "$ws.Grand Coulee Data Validation" set obj {Chief Joseph Data Validation} set o "$ws.Chief Joseph Data Validation" set obj {Federal Data Validation} set o "$ws.Federal Data Validation" set obj {Baseline} set o "$ws.Baseline" set s "$o.Chief Joseph Constraints_Bias" "$s" snapshotOf {Chief Joseph Constraints.Bias} set s "$o.Federal Constraints_Bias" "$s" snapshotOf {Federal Constraints.Bias} set s "$o.Grand Coulee Constraints_Bias" "$s" snapshotOf {Grand Coulee Constraints.Bias} set s "$o.Chief Joseph_Energy In Storage" "$s" snapshotOf {Chief Joseph.Energy In Storage} set s "$o.Nonfederal Data_Energy In Storage" "$s" snapshotOf {Nonfederal Data.Energy In Storage} set s "$o.Priest Rapids_Energy In Storage" "$s" snapshotOf {Priest Rapids.Energy In Storage} set s "$o.Rock Island_Energy In Storage" "$s" snapshotOf {Rock Island.Energy In Storage} set s "$o.Rocky Reach_Energy In Storage" "$s" snapshotOf {Rocky Reach.Energy In Storage} set s "$o.Wanapum_Energy In Storage" "$s" snapshotOf {Wanapum.Energy In Storage} set s "$o.Wells_Energy In Storage" "$s" snapshotOf {Wells.Energy In Storage} set s "$o.Chief Joseph_Inflow" "$s" snapshotOf {Chief Joseph.Inflow} set s "$o.Grand Coulee_Inflow" "$s" snapshotOf {Grand Coulee.Inflow} set s "$o.Priest Rapids_Inflow" "$s" snapshotOf {Priest Rapids.Inflow} set s "$o.Rock Island_Inflow" "$s" snapshotOf {Rock Island.Inflow} set s "$o.Rocky Reach_Inflow" "$s" snapshotOf {Rocky Reach.Inflow} set s "$o.Vernita Bar_Inflow" "$s" snapshotOf {Vernita Bar.Inflow} set s "$o.Wanapum_Inflow" "$s" snapshotOf {Wanapum.Inflow} set s "$o.Wells_Inflow" "$s" snapshotOf {Wells.Inflow} set s "$o.Requests_Nonfed Delivered Energy" "$s" snapshotOf {Requests.Nonfed Delivered Energy} set s "$o.Nonfederal Data_NonFederal Energy In Storage Cumulative" "$s" snapshotOf {Nonfederal Data.NonFederal Energy In Storage Cumulative} set s "$o.Chief Joseph_Outflow" "$s" snapshotOf {Chief Joseph.Outflow} set s "$o.Grand Coulee_Outflow" "$s" snapshotOf {Grand Coulee.Outflow} set s "$o.Priest Rapids_Outflow" "$s" snapshotOf {Priest Rapids.Outflow} set s "$o.Rock Island_Outflow" "$s" snapshotOf {Rock Island.Outflow} set s "$o.Rocky Reach_Outflow" "$s" snapshotOf {Rocky Reach.Outflow} set s "$o.Vernita Bar_Outflow" "$s" snapshotOf {Vernita Bar.Outflow} set s "$o.Wanapum_Outflow" "$s" snapshotOf {Wanapum.Outflow} set s "$o.Wells_Outflow" "$s" snapshotOf {Wells.Outflow} set s "$o.Chief Joseph_Pool Elevation" "$s" snapshotOf {Chief Joseph.Pool Elevation} set s "$o.Grand Coulee_Pool Elevation" "$s" snapshotOf {Grand Coulee.Pool Elevation} set s "$o.Priest Rapids_Pool Elevation" "$s" snapshotOf {Priest Rapids.Pool Elevation} set s "$o.Rock Island_Pool Elevation" "$s" snapshotOf {Rock Island.Pool Elevation} set s "$o.Rocky Reach_Pool Elevation" "$s" snapshotOf {Rocky Reach.Pool Elevation} set s "$o.Wanapum_Pool Elevation" "$s" snapshotOf {Wanapum.Pool Elevation} set s "$o.Wells_Pool Elevation" "$s" snapshotOf {Wells.Pool Elevation} set s "$o.Chief Joseph_Power" "$s" snapshotOf {Chief Joseph.Power} set s "$o.Grand Coulee_Power" "$s" snapshotOf {Grand Coulee.Power} set s "$o.Priest Rapids_Power" "$s" snapshotOf {Priest Rapids.Power} set s "$o.Rock Island_Power" "$s" snapshotOf {Rock Island.Power} set s "$o.Rocky Reach_Power" "$s" snapshotOf {Rocky Reach.Power} set s "$o.Wanapum_Power" "$s" snapshotOf {Wanapum.Power} set s "$o.Wells_Power" "$s" snapshotOf {Wells.Power} set s "$o.Chief Joseph_Power Coefficient" "$s" snapshotOf {Chief Joseph.Power Coefficient} set s "$o.Grand Coulee_Power Coefficient" "$s" snapshotOf {Grand Coulee.Power Coefficient} set s "$o.Priest Rapids_Power Coefficient" "$s" snapshotOf {Priest Rapids.Power Coefficient} set s "$o.Rock Island_Power Coefficient" "$s" snapshotOf {Rock Island.Power Coefficient} set s "$o.Rocky Reach_Power Coefficient" "$s" snapshotOf {Rocky Reach.Power Coefficient} set s "$o.Wanapum_Power Coefficient" "$s" snapshotOf {Wanapum.Power Coefficient} set s "$o.Wells_Power Coefficient" "$s" snapshotOf {Wells.Power Coefficient} set s "$o.Chief Joseph_Regulated Spill" "$s" snapshotOf {Chief Joseph.Regulated Spill} set s "$o.Grand Coulee_Regulated Spill" "$s" snapshotOf {Grand Coulee.Regulated Spill} set s "$o.Priest Rapids_Regulated Spill" "$s" snapshotOf {Priest Rapids.Regulated Spill} set s "$o.Rock Island_Regulated Spill" "$s" snapshotOf {Rock Island.Regulated Spill} set s "$o.Rocky Reach_Regulated Spill" "$s" snapshotOf {Rocky Reach.Regulated Spill} set s "$o.Wanapum_Regulated Spill" "$s" snapshotOf {Wanapum.Regulated Spill} set s "$o.Wells_Regulated Spill" "$s" snapshotOf {Wells.Regulated Spill} set s "$o.Chief Joseph_Tailwater Elevation" "$s" snapshotOf {Chief Joseph.Tailwater Elevation} set s "$o.Grand Coulee_Tailwater Elevation" "$s" snapshotOf {Grand Coulee.Tailwater Elevation} set s "$o.Priest Rapids_Tailwater Elevation" "$s" snapshotOf {Priest Rapids.Tailwater Elevation} set s "$o.Rock Island_Tailwater Elevation" "$s" snapshotOf {Rock Island.Tailwater Elevation} set s "$o.Rocky Reach_Tailwater Elevation" "$s" snapshotOf {Rocky Reach.Tailwater Elevation} set s "$o.Wanapum_Tailwater Elevation" "$s" snapshotOf {Wanapum.Tailwater Elevation} set s "$o.Wells_Tailwater Elevation" "$s" snapshotOf {Wells.Tailwater Elevation} set s "$o.Requests_Total Delivered Energy" "$s" snapshotOf {Requests.Total Delivered Energy} set s "$o.Chief Joseph_Turbine Release" "$s" snapshotOf {Chief Joseph.Turbine Release} set s "$o.Grand Coulee_Turbine Release" "$s" snapshotOf {Grand Coulee.Turbine Release} set s "$o.Priest Rapids_Turbine Release" "$s" snapshotOf {Priest Rapids.Turbine Release} set s "$o.Rock Island_Turbine Release" "$s" snapshotOf {Rock Island.Turbine Release} set s "$o.Rocky Reach_Turbine Release" "$s" snapshotOf {Rocky Reach.Turbine Release} set s "$o.Wanapum_Turbine Release" "$s" snapshotOf {Wanapum.Turbine Release} set s "$o.Wells_Turbine Release" "$s" snapshotOf {Wells.Turbine Release} # Section: Workspace Ornaments Section {Workspace Ornaments} Section {Links} # Section: Links $ws Link {Wells.Outflow} {WEL to RRH.Inflow} $ws Link {Rocky Reach.Inflow} {WEL to RRH.Outflow} $ws Link {Wells.Tailwater Base Value} {Rocky Reach.Pool Elevation} $ws Link {Rocky Reach.Outflow} {RRH to RIS.Inflow} $ws Link {Rock Island.Inflow} {RRH to RIS.Outflow} $ws Link {Rocky Reach.Tailwater Base Value} {Rock Island.Pool Elevation} $ws Link {Rock Island.Outflow} {RIS to WAN.Inflow} $ws Link {Rock Island.Tailwater Base Value} {Wanapum.Pool Elevation} $ws Link {Wanapum.Inflow} {RIS to WAN.Outflow} $ws Link {Priest Rapids.Inflow} {WAN to PRD.Outflow} $ws Link {Wanapum.Outflow} {WAN to PRD.Inflow} $ws Link {Wanapum.Tailwater Base Value} {Priest Rapids.Pool Elevation} $ws Link {Chief Joseph.Outflow} {CHJ to WEL.Inflow} $ws Link {Wells.Inflow} {CHJ to WEL.Outflow} $ws Link {Priest Rapids.Outflow} {Vernita Bar.Inflow} $ws Link {Wells.Inflow} {Okanogan River.Outflow} $ws Link {Wells.Inflow} {Methow River.Outflow} $ws Link {Rocky Reach.Inflow} {Entiat River.Outflow} $ws Link {Rock Island.Inflow} {Wenatchee River.Outflow} $ws Link {Priest Rapids.Inflow} {Crab Creek.Outflow} $ws Link {Rocky Reach.Inflow} {Chelan River.Outflow} # Section: Link Groups $ws LinkGroup {Default} {linkDisplayInfo Sty:Dot Vis:1 Wid:1 Color:4278190080 Pri:4 Ena:1} $ws LinkGroup {Main Channel Links} {linkDisplayInfo Sty:Solid Vis:1 Wid:3 Color:4278190080 Pri:3 Ena:1} $ws LinkGroup {Thermal Links} {linkDisplayInfo Sty:Dash Vis:1 Wid:0 Color:4291743438 Pri:1 Ena:1} {RootSelection Version1 \ RootSel_Name "Thermal Links Slot Selection 1" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed false \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed false \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 460 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols false \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Thermal" \ RootSel_End \ } $ws LinkGroup {Tailwater Links} {linkDisplayInfo Sty:Solid Vis:1 Wid:0 Color:4291743438 Pri:2 Ena:1} {RootSelection Version1 \ RootSel_Name "Tailwater Links Slot Selection 1" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed false \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed false \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 460 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols false \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Tailwater Base Value" \ RootSel_Slot "Grand Coulee.Tailwater Base Value" \ RootSel_Slot "Priest Rapids.Tailwater Base Value" \ RootSel_Slot "Rock Island.Tailwater Base Value" \ RootSel_Slot "Rocky Reach.Tailwater Base Value" \ RootSel_Slot "Wanapum.Tailwater Base Value" \ RootSel_Slot "Wells.Tailwater Base Value" \ RootSel_End \ } $ws LinkGroup {Side Inflows} {linkDisplayInfo Sty:Solid Vis:1 Wid:0 Color:4278190080 Pri:0 Ena:1} {RootSelection Version1 \ RootSel_Name "Side Inflows Slot Selection 1" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed false \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed false \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 460 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols false \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Chelan River" \ RootSel_SimObj "Crab Creek" \ RootSel_SimObj "Entiat River" \ RootSel_SimObj "Methow River" \ RootSel_SimObj "Okanogan River" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Chelan River.Outflow" \ RootSel_Slot "Crab Creek.Outflow" \ RootSel_Slot "Entiat River.Outflow" \ RootSel_Slot "Methow River.Outflow" \ RootSel_Slot "Okanogan River.Outflow" \ RootSel_Slot "Wenatchee River.Outflow" \ RootSel_End \ } # Section: SimObj Groups # Section: Multiple Run Management Section {Multiple Run Management} $ws.mrm format 2 $ws.mrm iterRplSet {RULESET\ NAME "Iterative MRM Rules Set";\ AGENDA_ORDER ASCENDING;\ DESCRIPTION "";\ PRECISION 8;\ NOTES "";\ BEGIN\ \ END\ } # Section: Subbasin Section {Subbasins} # Section: Sim Analysis Info Section {Sim Analysis Info} $ws.DispatchInfo displayedObjects {Wells} {Rocky Reach} {WEL to RRH} {Rock Island} {RRH to RIS} {RIS to WAN} {Wanapum} {Priest Rapids} {WAN to PRD} {Grand Coulee} {Chief Joseph} {GCL to CHJ} {CHJ to WEL} {Vernita Bar} {Methow River} {Okanogan River} {Entiat River} {Wenatchee River} {Crab Creek} {Chelan River} $ws.DispatchInfo hiddenObjects $ws.DispatchInfo axisOption {1} $ws.DispatchInfo updateOption {1} $ws.DispatchInfo showObjIcons {1} $ws.DispatchInfo priorityColors # Section: Optimization Analysis Info Section {Optimization Analysis Info} $ws.OptAnalysisInfo optDisplayedObjects {WEL to RRH} {Wells} {Rocky Reach} {Rock Island} {RRH to RIS} {RIS to WAN} {Wanapum} {Priest Rapids} {WAN to PRD} {Grand Coulee} {Chief Joseph} {GCL to CHJ} {CHJ to WEL} {Vernita Bar} {Methow River} {Okanogan River} {Entiat River} {Wenatchee River} {Crab Creek} {Chelan River} $ws.OptAnalysisInfo optHiddenObjects $ws.OptAnalysisInfo optAxisOption {1} $ws.OptAnalysisInfo optUpdateOption {1} $ws.OptAnalysisInfo showObjIcons {1} $ws.OptAnalysisInfo optPriorityColors # Section: Scenario Manager Section {Scenario Manager} $ws.ScenarioBaseline baselineComments {} # Section: RPL Expression Slot Manager Section {RPL Expression Slot Manager} set resm "$ws.RplExprSlotMgr" $resm collectNotes 0 $resm resmRplSet {RULESET\ NAME "Expression Slot Functions Set";\ AGENDA_ORDER ASCENDING;\ DESCRIPTION "";\ PRECISION 8;\ NOTES "";\ BEGIN\ \ END\ } $resm resmUtilityGroup { PREDEFINED_GROUP "Numeric / Math";\ DESCRIPTION "Predefined functions which perform generic numerical computations.";\ ACTIVE TRUE;\ BEGIN\ \ PREDEFINED_FUNCTION "MinItem" ( LIST arg1 )\ SCALE_UNITS "";\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG TRUE;\ ;\ \ PREDEFINED_FUNCTION "SumFlowsToVolume" ( SLOT arg1, DATETIME arg2, DATETIME arg3 )\ SCALE_UNITS "acre-ft";\ PRE_EXEC_DIAG TRUE;\ POST_EXEC_DIAG TRUE;\ ;\ \ PREDEFINED_FUNCTION "SumSlot" ( SLOT arg1, DATETIME arg2, DATETIME arg3 )\ SCALE_UNITS "cfs";\ PRE_EXEC_DIAG TRUE;\ POST_EXEC_DIAG TRUE;\ ;\ \ END} $resm resmUtilityGroup { PREDEFINED_GROUP "Date / Time";\ DESCRIPTION "Predefined functions which access and manipulate date/times.";\ ACTIVE TRUE;\ BEGIN\ \ PREDEFINED_FUNCTION "RunStartDate" ( )\ SCALE_UNITS "";\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG TRUE;\ ;\ \ PREDEFINED_FUNCTION "RunEndDate" ( )\ SCALE_UNITS "";\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG TRUE;\ ;\ \ END} # Section: SnapShot Manager Section {SnapShot Manager} $ws.snapShotMgr slotStore {Chief Joseph.Pool Elevation} {Grand Coulee.Pool Elevation} {Priest Rapids.Pool Elevation} {Rock Island.Pool Elevation} {Rocky Reach.Pool Elevation} {Wanapum.Pool Elevation} {Wells.Pool Elevation} {Chief Joseph.Regulated Spill} {Grand Coulee.Regulated Spill} {Priest Rapids.Regulated Spill} {Rock Island.Regulated Spill} {Rocky Reach.Regulated Spill} {Wanapum.Regulated Spill} {Wells.Regulated Spill} {Chief Joseph.Turbine Release} {Grand Coulee.Turbine Release} {Priest Rapids.Turbine Release} {Rock Island.Turbine Release} {Rocky Reach.Turbine Release} {Wanapum.Turbine Release} {Wells.Turbine Release} {Requests.Nonfed Delivered Energy} {Requests.Total Delivered Energy} {Chief Joseph.Power Coefficient} {Grand Coulee.Power Coefficient} {Priest Rapids.Power Coefficient} {Rock Island.Power Coefficient} {Rocky Reach.Power Coefficient} {Wanapum.Power Coefficient} {Wells.Power Coefficient} {Chief Joseph.Outflow} {Grand Coulee.Outflow} {Priest Rapids.Outflow} {Rock Island.Outflow} {Rocky Reach.Outflow} {Wanapum.Outflow} {Wells.Outflow} {Chief Joseph.Power} {Grand Coulee.Power} {Priest Rapids.Power} {Rock Island.Power} {Rocky Reach.Power} {Wanapum.Power} {Wells.Power} {Vernita Bar.Outflow} {Chief Joseph.Inflow} {Grand Coulee.Inflow} {Priest Rapids.Inflow} {Rock Island.Inflow} {Rocky Reach.Inflow} {Wanapum.Inflow} {Wells.Inflow} {Grand Coulee Constraints.Bias} {Nonfederal Data.NonFederal Energy In Storage Cumulative} {Chief Joseph.Energy In Storage} {Priest Rapids.Energy In Storage} {Rock Island.Energy In Storage} {Rocky Reach.Energy In Storage} {Wanapum.Energy In Storage} {Wells.Energy In Storage} {Nonfederal Data.Energy In Storage} {Priest Rapids.Tailwater Elevation} {Rock Island.Tailwater Elevation} {Rocky Reach.Tailwater Elevation} {Wanapum.Tailwater Elevation} {Wells.Tailwater Elevation} {Chief Joseph Constraints.Accumulated Exchange} {Chief Joseph Constraints.Bias} {Federal Constraints.Bias} # Section: Output Device Manager Section {Output Device Manager} $ws.outputDeviceMgr addPlotPage {Energy in Storage} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Energy in Storage" "$plotpage" description {} "$plotpage" layout 2 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 58000 72000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 5 8 5 1 0 {} 1 "$plot" axis {xBottom} {} {} 0 2454850 2454850 D 23 8 5 1 1 {} 0 "$plot" axis {xTop} {} {} 0 0 0 f 5 8 5 1 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Jan 17 Bias 0 MW.Requests_NonFederal Energy In Storage Cumulative} set curve "$plot.Jan 17 Bias 0 MW.Requests_NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 0 MW.Requests_NonFederal Energy In Storage Cumulative} -1 0 -1 0 "$plot" curve {Jan 17 Bias 1000 MW.Requests_NonFederal Energy In Storage Cumulative} set curve "$plot.Jan 17 Bias 1000 MW.Requests_NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 1000 MW.Requests_NonFederal Energy In Storage Cumulative} -1 0 -1 0 "$plot" curve {Jan 17 Bias 500 MW.Requests_NonFederal Energy In Storage Cumulative} set curve "$plot.Jan 17 Bias 500 MW.Requests_NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 500 MW.Requests_NonFederal Energy In Storage Cumulative} -1 0 -1 0 "$plot" curve {Jan 17 Bias 500 MW No CHJ Bias.Requests_NonFederal Energy In Storage Cumulative} set curve "$plot.Jan 17 Bias 500 MW No CHJ Bias.Requests_NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4294923520 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 500 MW No CHJ Bias.Requests_NonFederal Energy In Storage Cumulative} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1640000 1760000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 5 8 5 1 0 {} 1 "$plot" axis {xBottom} {} {} 0 2454850 2454850 D 23 8 5 1 1 {} 0 "$plot" axis {xTop} {} {} 0 0 0 f 5 8 5 1 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Jan 17 Bias 0 MW.Requests_NonFederal Energy In Storage Cumulative With Fed} set curve "$plot.Jan 17 Bias 0 MW.Requests_NonFederal Energy In Storage Cumulative With Fed" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 0 MW.Requests_NonFederal Energy In Storage Cumulative With Fed} -1 0 -1 0 "$plot" curve {Jan 17 Bias 1000 MW.Requests_NonFederal Energy In Storage Cumulative With Fed} set curve "$plot.Jan 17 Bias 1000 MW.Requests_NonFederal Energy In Storage Cumulative With Fed" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 1000 MW.Requests_NonFederal Energy In Storage Cumulative With Fed} -1 0 -1 0 "$plot" curve {Jan 17 Bias 500 MW.Requests_NonFederal Energy In Storage Cumulative With Fed} set curve "$plot.Jan 17 Bias 500 MW.Requests_NonFederal Energy In Storage Cumulative With Fed" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 500 MW.Requests_NonFederal Energy In Storage Cumulative With Fed} -1 0 -1 0 "$plot" curve {Jan 17 Bias 500 MW No CHJ Bias.Requests_NonFederal Energy In Storage Cumulative With Fed} set curve "$plot.Jan 17 Bias 500 MW No CHJ Bias.Requests_NonFederal Energy In Storage Cumulative With Fed" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4294923520 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Jan 17 Bias 500 MW No CHJ Bias.Requests_NonFederal Energy In Storage Cumulative With Fed} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Chief Joseph Forebay} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Chief Joseph Forebay" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 952 956 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Chief Joseph.Pool Elevation} set curve "$plot.Chief Joseph.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph.Pool Elevation} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Federal Discharge} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Federal Discharge" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 200 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456560 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Chief Joseph.Outflow} set curve "$plot.Chief Joseph.Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph.Outflow} -1 0 -1 0 "$plot" curve {Grand Coulee.Outflow} set curve "$plot.Grand Coulee.Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee.Outflow} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 200 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Chief Joseph.Turbine Release} set curve "$plot.Chief Joseph.Turbine Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph.Turbine Release} -1 0 -1 0 "$plot" curve {Grand Coulee.Turbine Release} set curve "$plot.Grand Coulee.Turbine Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee.Turbine Release} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1000 4000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Total Federal Request} set curve "$plot.Requests.Total Federal Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Federal Request} -1 0 -1 0 "$plot" curve {Federal Constraints.Federal Generation} set curve "$plot.Federal Constraints.Federal Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 1 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Federal Generation} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Federal Generation} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Federal Generation" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 4000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456610 2456610 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Federal Constraints.Federal Generation} set curve "$plot.Federal Constraints.Federal Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Federal Generation} -1 0 -1 0 "$plot" curve {Federal Constraints.Final Corrected Request} set curve "$plot.Federal Constraints.Final Corrected Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Adjusted RequestOLD} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {ChiefJosephRequestAdjustment} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.ChiefJosephRequestAdjustment" "$plotpage" description {} "$plotpage" layout 2 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 0 1400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Chief Joseph Constraints.Final Corrected Request} set curve "$plot.Chief Joseph Constraints.Final Corrected Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph Constraints.Adjusted RequestOLD} -1 0 -1 0 "$plot" curve {Chief Joseph Constraints.Initial Uncoordinated Request} set curve "$plot.Chief Joseph Constraints.Initial Uncoordinated Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph Constraints.Initial Uncoordinated Request} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Chief Joseph Constraints.Corrected Tailwater Release} set curve "$plot.Chief Joseph Constraints.Corrected Tailwater Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph Constraints.Tailwater Corrected Release} -1 0 -1 0 "$plot" curve {Chief Joseph Constraints.Corrected Smoothed Release} set curve "$plot.Chief Joseph Constraints.Corrected Smoothed Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph Constraints.Elevation Corrected Release} -1 0 -1 0 "$plot" curve {Chief Joseph Constraints.Smoothed Release} set curve "$plot.Chief Joseph Constraints.Smoothed Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph Constraints.Smoothed Release} -1 0 -1 0 "$plot" curve {Chief Joseph Constraints.Initial Request As Flow} set curve "$plot.Chief Joseph Constraints.Initial Request As Flow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph Constraints.Initial Request As Flow} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {GrandCouleeRequestAdjustment} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.GrandCouleeRequestAdjustment" "$plotpage" description {} "$plotpage" layout 2 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 0 3000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Grand Coulee Constraints.Final Corrected Request} set curve "$plot.Grand Coulee Constraints.Final Corrected Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Adjusted RequestOLD} -1 0 -1 0 "$plot" curve {Grand Coulee Constraints.Initial Uncoordinated Request} set curve "$plot.Grand Coulee Constraints.Initial Uncoordinated Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Initial Uncoordinated Request} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 120 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2456570 2456570 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Grand Coulee Constraints.Corrected Tailwater Release} set curve "$plot.Grand Coulee Constraints.Corrected Tailwater Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Tailwater Corrected Release} -1 0 -1 0 "$plot" curve {Grand Coulee Constraints.Corrected Smoothed Release} set curve "$plot.Grand Coulee Constraints.Corrected Smoothed Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Elevation Corrected Release} -1 0 -1 0 "$plot" curve {Grand Coulee Constraints.Smoothed Release} set curve "$plot.Grand Coulee Constraints.Smoothed Release" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Smoothed Release} -1 0 -1 0 "$plot" curve {Grand Coulee Constraints.Initial Request As Flow} set curve "$plot.Grand Coulee Constraints.Initial Request As Flow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {FederalGenerationBounds} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.FederalGenerationBounds" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 0 4000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Federal Constraints.Lower Generation Bound} set curve "$plot.Federal Constraints.Lower Generation Bound" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Lower Generation Bound} -1 0 -1 0 "$plot" curve {Federal Constraints.Upper Generation Bound} set curve "$plot.Federal Constraints.Upper Generation Bound" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Upper Generation Bound} -1 0 -1 0 "$plot" curve {Federal Constraints.Adjusted Request} set curve "$plot.Federal Constraints.Adjusted Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Adjusted Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Bias} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Bias" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 -600 600 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5416666665 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Federal Constraints.Bias Negative Limit Revised} set curve "$plot.Federal Constraints.Bias Negative Limit Revised" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Bias Negative Limit Revised} -1 0 -1 0 "$plot" curve {Federal Constraints.Bias Positive Limit Revised} set curve "$plot.Federal Constraints.Bias Positive Limit Revised" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Bias Positive Limit Revised} -1 0 -1 0 "$plot" curve {Federal Constraints.Total Bias} set curve "$plot.Federal Constraints.Total Bias" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Total Bias} -1 -1 -1 0 "$plot" curve {Grand Coulee Constraints.Bias} set curve "$plot.Grand Coulee Constraints.Bias" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Bias} -1 -1 -1 0 "$plot" curve {Grand Coulee Bias Baseline} set curve "$plot.Grand Coulee Bias Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Bias Baseline} -1 -1 -1 0 "$plot" curve {Federal Constraints.Bias Before Reshaping} set curve "$plot.Federal Constraints.Bias Before Reshaping" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Bias Before Reshaping} -1 0 -1 0 "$plot" curve {Federal Constraints.Bias Reshaped} set curve "$plot.Federal Constraints.Bias Reshaped" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4289353215 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Bias Reshaped} -1 0 -1 0 "$plot" curve {GCL Bias Scheduled} set curve "$plot.GCL Bias Scheduled" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 2 4289331455 "$curve" symbolInfo {Diamond} 2 4289331455 "$curve" slots 0 {} {Grand Coulee Constraints.Bias Scheduled for Plotting} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {GrandCouleeBias} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.GrandCouleeBias" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 -500.11200000000002 499.21800000000002 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Grand Coulee Constraints.Bias} set curve "$plot.Grand Coulee Constraints.Bias" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Bias} -1 0 -1 0 "$plot" curve {Federal Constraints.Bias Negative Limit Revised} set curve "$plot.Federal Constraints.Bias Negative Limit Revised" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Bias Negative Limit Revised} -1 0 -1 0 "$plot" curve {Federal Constraints.Bias Positive Limit Revised} set curve "$plot.Federal Constraints.Bias Positive Limit Revised" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Federal Constraints.Bias Positive Limit Revised} -1 0 -1 0 "$plot" curve {Grand Coulee Constraints.Bias Negative Limit} set curve "$plot.Grand Coulee Constraints.Bias Negative Limit" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Bias Negative Limit} -1 0 -1 0 "$plot" curve {Grand Coulee Constraints.Bias Positive Limit} set curve "$plot.Grand Coulee Constraints.Bias Positive Limit" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Grand Coulee Constraints.Bias Positive Limit} -1 0 -1 0 "$plot" curve {GCL Bias Scheduled} set curve "$plot.GCL Bias Scheduled" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 2 4289331455 "$curve" symbolInfo {Diamond} 2 4289331455 "$curve" slots 0 {} {Grand Coulee Constraints.Bias Scheduled for Plotting} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Pool Elevation} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Pool Elevation" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 770.79999999999995 782 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Pool Elevation} set curve "$plot.Wells.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Max with Margin} set curve "$plot.Wells Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Min with Margin} set curve "$plot.Wells Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Wells Pool Elevation Baseline} set curve "$plot.Wells Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Desired Elevation Target} set curve "$plot.Wells Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Desired Elevation Target} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Wanapum Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 559.79999999999995 572 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Pool Elevation} set curve "$plot.Wanapum.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Max with Margin} set curve "$plot.Wanapum Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Min with Margin} set curve "$plot.Wanapum Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Wanapum Pool Elevation Baseline} set curve "$plot.Wanapum Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Desired Elevation Target} set curve "$plot.Wanapum Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Pool Elevation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 702.89999999999998 707.10000000000002 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Pool Elevation} set curve "$plot.Rocky Reach.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Max with Margin} set curve "$plot.Rocky Reach Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Min with Margin} set curve "$plot.Rocky Reach Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Rocky Reach Pool Elevation Baseline} set curve "$plot.Rocky Reach Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Desired Elevation Target} set curve "$plot.Rocky Reach Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Desired Elevation Target} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {Priest Rapids Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 481.39999999999998 488.10000000000002 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Pool Elevation} set curve "$plot.Priest Rapids.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Max with Margin} set curve "$plot.Priest Rapids Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Min with Margin} set curve "$plot.Priest Rapids Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Priest Rapids Pool Elevation Baseline} set curve "$plot.Priest Rapids Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Desired Elevation Target} set curve "$plot.Priest Rapids Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 608.89999999999998 613.10000000000002 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Pool Elevation} set curve "$plot.Rock Island.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Max with Margin} set curve "$plot.Rock Island Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Min with Margin} set curve "$plot.Rock Island Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Rock Island Pool Elevation Baseline} set curve "$plot.Rock Island Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Desired Elevation Target} set curve "$plot.Rock Island Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Desired Elevation Target} -1 0 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {Generation Requests vs Forecast} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Tailwater Elevation} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Tailwater Elevation" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Tailwater Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 699.79999999999995 740.5 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Tailwater Elevation} set curve "$plot.Wells.Tailwater Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Tailwater Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Tailwater Elev} set curve "$plot.Wells Constraints.Special Operations Max Tailwater Elev" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Tailwater Elev} set curve "$plot.Wells Constraints.Special Operations Min Tailwater Elev" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Tailwater Elev} -1 0 -1 0 "$plot" curve {Wells Constraints.Tailwater Elevation Baseline} set curve "$plot.Wells Constraints.Tailwater Elevation Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Tailwater Elevation Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Tailwater Elev} set curve "$plot.Wells Constraints.Special Operations Soft Max Tailwater Elev" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Tailwater Elev} set curve "$plot.Wells Constraints.Special Operations Soft Min Tailwater Elev" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Tailwater Elev} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Wanapum Tailwater Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 479.60000000000002 520.39999999999998 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Tailwater Elevation} set curve "$plot.Wanapum.Tailwater Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Tailwater Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Tailwater Elev} set curve "$plot.Wanapum Constraints.Special Operations Max Tailwater Elev" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Tailwater Elev} set curve "$plot.Wanapum Constraints.Special Operations Min Tailwater Elev" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Tailwater Elev} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Tailwater Elevation Baseline} set curve "$plot.Wanapum Constraints.Tailwater Elevation Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Tailwater Elevation Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Max Tailwater Elev} set curve "$plot.Wanapum Constraints::Special Operations Soft Max Tailwater Elev" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Tailwater Elev} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Min Tailwater Elev} set curve "$plot.Wanapum Constraints::Special Operations Soft Min Tailwater Elev" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Tailwater Elev} -1 -1 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Tailwater Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 604.79999999999995 645.39999999999998 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Tailwater Elevation} set curve "$plot.Rocky Reach.Tailwater Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Tailwater Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Tailwater Elev} set curve "$plot.Rocky Reach Constraints.Special Operations Max Tailwater Elev" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Tailwater Elev} set curve "$plot.Rocky Reach Constraints.Special Operations Min Tailwater Elev" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Tailwater Elev} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Tailwater Elevation Baseline} set curve "$plot.Rocky Reach Constraints.Tailwater Elevation Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Tailwater Elevation Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Tailwater Elev} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Tailwater Elev" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Tailwater Elev} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Tailwater Elev" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Tailwater Elev} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {Priest Rapids Tailwater Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 379.60000000000002 432.60000000000002 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Tailwater Elevation} set curve "$plot.Priest Rapids.Tailwater Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Tailwater Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Tailwater Elev} set curve "$plot.Priest Rapids Constraints.Special Operations Max Tailwater Elev" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Tailwater Elev} set curve "$plot.Priest Rapids Constraints.Special Operations Min Tailwater Elev" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Tailwater Elev} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Tailwater Elevation Baseline} set curve "$plot.Priest Rapids Constraints.Tailwater Elevation Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Tailwater Elevation Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Tailwater Elev} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Tailwater Elev" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Tailwater Elev} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Tailwater Elev} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Tailwater Elev" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Tailwater Elev} -1 -1 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Tailwater Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 539.60000000000002 607.39999999999998 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Tailwater Elevation} set curve "$plot.Rock Island.Tailwater Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Tailwater Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Tailwater Elev} set curve "$plot.Rock Island Constraints.Special Operations Max Tailwater Elev" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Tailwater Elev} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Tailwater Elev} set curve "$plot.Rock Island Constraints.Special Operations Min Tailwater Elev" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Tailwater Elev} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Tailwater Elevation Baseline} set curve "$plot.Rock Island Constraints.Tailwater Elevation Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Tailwater Elevation Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Max Tailwater Elev} set curve "$plot.Rock Island Constraints::Special Operations Soft Max Tailwater Elev" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Tailwater Elev} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Min Tailwater Elev} set curve "$plot.Rock Island Constraints::Special Operations Soft Min Tailwater Elev" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Tailwater Elev} -1 -1 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {Generation Requests vs Forecast} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Outflow} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Outflow" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 403 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Outflow} set curve "$plot.Wells.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Outflow} set curve "$plot.Wells Constraints.Special Operations Max Outflow" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Outflow} set curve "$plot.Wells Constraints.Special Operations Min Outflow" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Wells Outflow Baseline} set curve "$plot.Wells Outflow Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Outflow} set curve "$plot.Wells Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Outflow} set curve "$plot.Wells Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Wanapum Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 403 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Outflow} set curve "$plot.Wanapum.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Outflow} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Outflow} set curve "$plot.Wanapum Constraints.Special Operations Max Outflow" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Outflow} set curve "$plot.Wanapum Constraints.Special Operations Min Outflow" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Wanapum Outflow Baseline} set curve "$plot.Wanapum Outflow Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Outflow} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Outflow} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 403 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Outflow} set curve "$plot.Rocky Reach.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Max Outflow" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Min Outflow" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Outflow Baseline} set curve "$plot.Rocky Reach Outflow Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {Priest Rapids Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 403 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Outflow} set curve "$plot.Priest Rapids.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Outflow} set curve "$plot.Priest Rapids Constraints.Special Operations Max Outflow" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Outflow} set curve "$plot.Priest Rapids Constraints.Special Operations Min Outflow" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids Outflow Baseline} set curve "$plot.Priest Rapids Outflow Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Outflow} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Outflow} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 403 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Outflow} set curve "$plot.Rock Island.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Outflow} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Outflow} set curve "$plot.Rock Island Constraints.Special Operations Max Outflow" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Outflow} set curve "$plot.Rock Island Constraints.Special Operations Min Outflow" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Outflow Baseline} set curve "$plot.Rock Island Constraints.Outflow Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Outflow} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Outflow} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {Generation Requests vs Forecast} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Generation} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Generation" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Power} set curve "$plot.Wells.Power" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Power} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Generation} set curve "$plot.Wells Constraints.Special Operations Max Generation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Generation} set curve "$plot.Wells Constraints.Special Operations Min Generation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Power Baseline} set curve "$plot.Wells Constraints.Power Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Generation} set curve "$plot.Wells Constraints.Special Operations Soft Max Generation" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Generation} set curve "$plot.Wells Constraints.Special Operations Soft Min Generation" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Wanapum Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1200 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Power} set curve "$plot.Wanapum.Power" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Power} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Max Generation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Min Generation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Power Baseline} set curve "$plot.Wanapum Constraints.Power Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Generation" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Generation" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Power} set curve "$plot.Rocky Reach.Power" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Power} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Generation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Generation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Power Baseline} set curve "$plot.Rocky Reach Constraints.Power Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Generation" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Generation" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {Priest Rapids Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Power} set curve "$plot.Priest Rapids.Power" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Power} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Generation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Power Baseline} set curve "$plot.Priest Rapids Constraints.Power Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Generation" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Generation" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 700 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Power} set curve "$plot.Rock Island.Power" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Power} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Max Generation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Min Generation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Power Baseline} set curve "$plot.Rock Island Constraints.Power Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Generation" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Generation" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {Generation Requests vs Forecast} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 700 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Turbine Release} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Turbine Release" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Turbine Release} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Turbine Release} set curve "$plot.Wells.Turbine Release" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Turbine Release} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Turbine Release} set curve "$plot.Wells Constraints.Special Operations Max Turbine Release" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Turbine Release} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Turbine Release} set curve "$plot.Wells Constraints.Special Operations Min Turbine Release" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Turbine Release} -1 0 -1 0 "$plot" curve {Wells Constraints.Turbine Release Baseline} set curve "$plot.Wells Constraints.Turbine Release Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Turbine Release} set curve "$plot.Wells Constraints.Special Operations Soft Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Turbine Release} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Turbine Release} set curve "$plot.Wells Constraints.Special Operations Soft Min Turbine Release" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Turbine Release} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Wanapum Turbine Release} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Turbine Release} set curve "$plot.Wanapum.Turbine Release" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Turbine Release} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Turbine Release} set curve "$plot.Wanapum Constraints.Special Operations Max Turbine Release" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Turbine Release} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Turbine Release} set curve "$plot.Wanapum Constraints.Special Operations Min Turbine Release" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Turbine Release} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Turbine Release Baseline} set curve "$plot.Wanapum Constraints.Turbine Release Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Turbine Release} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Turbine Release} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Turbine Release} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Turbine Release" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Turbine Release} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Turbine Release} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Turbine Release} set curve "$plot.Rocky Reach.Turbine Release" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Turbine Release} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Turbine Release} set curve "$plot.Rocky Reach Constraints.Special Operations Max Turbine Release" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Turbine Release} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Turbine Release} set curve "$plot.Rocky Reach Constraints.Special Operations Min Turbine Release" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Turbine Release} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Turbine Release Baseline} set curve "$plot.Rocky Reach Constraints.Turbine Release Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Turbine Release} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Turbine Release} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Turbine Release} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Turbine Release" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Turbine Release} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {Priest Rapids Turbine Release} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Turbine Release} set curve "$plot.Priest Rapids.Turbine Release" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Turbine Release} set curve "$plot.Priest Rapids Constraints.Special Operations Max Turbine Release" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Turbine Release} set curve "$plot.Priest Rapids Constraints.Special Operations Min Turbine Release" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Turbine Release Baseline} set curve "$plot.Priest Rapids Constraints.Turbine Release Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Turbine Release} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Turbine Release} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Turbine Release" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Turbine Release} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Turbine Release} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Turbine Release} set curve "$plot.Rock Island.Turbine Release" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Turbine Release} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Turbine Release} set curve "$plot.Rock Island Constraints.Special Operations Max Turbine Release" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Turbine Release} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Turbine Release} set curve "$plot.Rock Island Constraints.Special Operations Min Turbine Release" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Turbine Release} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Turbine Release Baseline} set curve "$plot.Rock Island Constraints.Turbine Release Baseline" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Turbine Release} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Turbine Release} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Turbine Release} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Turbine Release" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Turbine Release} -1 0 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {Generation Requests vs Forecast} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Regulated Spill} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Regulated Spill" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Spill} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Regulated Spill} set curve "$plot.Wells.Regulated Spill" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Regulated Spill} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Spill} set curve "$plot.Wells Constraints.Special Operations Min Spill" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Wells Constraints.Regulated Spill Baseline} set curve "$plot.Wells Constraints.Regulated Spill Baseline" "$curve" legendOrd 2 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Spill} set curve "$plot.Wells Constraints.Special Operations Soft Max Spill" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Spill} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Spill} set curve "$plot.Wells Constraints.Special Operations Soft Min Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Spill} -1 0 -1 0 "$plot" curve {Wells Constraints::Special Operations Max Spill} set curve "$plot.Wells Constraints::Special Operations Max Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Wanapum Spill} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Regulated Spill} set curve "$plot.Wanapum.Regulated Spill" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Regulated Spill} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Spill} set curve "$plot.Wanapum Constraints.Special Operations Min Spill" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Regulated Spill Baseline} set curve "$plot.Wanapum Constraints.Regulated Spill Baseline" "$curve" legendOrd 2 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Spill} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Spill" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Spill} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Spill} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Spill} -1 0 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Max Spill} set curve "$plot.Wanapum Constraints::Special Operations Max Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Spill} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Regulated Spill} set curve "$plot.Rocky Reach.Regulated Spill" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Regulated Spill} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Spill} set curve "$plot.Rocky Reach Constraints.Special Operations Min Spill" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Regulated Spill Baseline} set curve "$plot.Rocky Reach Constraints.Regulated Spill Baseline" "$curve" legendOrd 2 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Spill} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Spill" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Spill} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Spill} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Spill} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Max Spill} set curve "$plot.Rocky Reach Constraints::Special Operations Max Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {Priest Rapids Spill} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Regulated Spill} set curve "$plot.Priest Rapids.Regulated Spill" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Regulated Spill} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Spill} set curve "$plot.Priest Rapids Constraints.Special Operations Min Spill" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Regulated Spill Baseline} set curve "$plot.Priest Rapids Constraints.Regulated Spill Baseline" "$curve" legendOrd 2 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Spill} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Spill" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Spill} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Spill} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Spill} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Max Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Spill} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 250 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Regulated Spill} set curve "$plot.Rock Island.Regulated Spill" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Regulated Spill} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Spill} set curve "$plot.Rock Island Constraints.Special Operations Min Spill" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Regulated Spill Baseline} set curve "$plot.Rock Island Constraints.Regulated Spill Baseline" "$curve" legendOrd 2 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Spill} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Spill" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Spill} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Spill} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Spill} -1 0 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Max Spill} set curve "$plot.Rock Island Constraints::Special Operations Max Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {Generation Requests vs Forecast} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Power} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Power" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Power} set curve "$plot.Wells.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Power} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Generation} set curve "$plot.Wells Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Generation} set curve "$plot.Wells Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wells Power Baseline} set curve "$plot.Wells Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Generation} set curve "$plot.Wells Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Generation} set curve "$plot.Wells Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1200 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Power} set curve "$plot.Wanapum.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Power} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Power Baseline} set curve "$plot.Wanapum Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Power} set curve "$plot.Rocky Reach.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Power} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Power Baseline} set curve "$plot.Rocky Reach Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Power} set curve "$plot.Priest Rapids.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Power} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Power Baseline} set curve "$plot.Priest Rapids Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 700 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Power} set curve "$plot.Rock Island.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Power} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rock Island Power Baseline} set curve "$plot.Rock Island Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1500 5000 f 0 8 5 1 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2455562.5 2455565.5 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 1 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Total Nonfed Generation} set curve "$plot.Requests.Total Nonfed Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Generation} -1 0 -1 0 "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Initial Nonfed Request} set curve "$plot.Requests.Initial Nonfed Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {DashDot} 2 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Initial Nonfed Request} -1 0 -1 0 "$plot" curve {Requests.Nonfed Request Adjustment} set curve "$plot.Requests.Nonfed Request Adjustment" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {DashDotDot} 2 4289374975 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Request Adjustment} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Wells} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Wells" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 770 782 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Pool Elevation} set curve "$plot.Wells.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Max with Margin} set curve "$plot.Wells Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Min with Margin} set curve "$plot.Wells Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Desired Elevation Target} set curve "$plot.Wells Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Min Pool Elevation} set curve "$plot.Wells Constraints::Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Pool Elevation} -1 -1 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Wells Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Outflow} set curve "$plot.Wells.Outflow" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Outflow} set curve "$plot.Wells Constraints.Special Operations Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Wells.Regulated Spill} set curve "$plot.Wells.Regulated Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Regulated Spill} -1 0 -1 0 "$plot" curve {Wells.Turbine Release} set curve "$plot.Wells.Turbine Release" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Turbine Release} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Spill} set curve "$plot.Wells Constraints.Special Operations Min Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Outflow} set curve "$plot.Wells Constraints.Special Operations Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Outflow} set curve "$plot.Wells Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Outflow} set curve "$plot.Wells Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Spill} set curve "$plot.Wells Constraints.Special Operations Soft Max Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Spill} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Spill} set curve "$plot.Wells Constraints.Special Operations Soft Min Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Spill} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Wells Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 700 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Power} set curve "$plot.Wells.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Power} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Generation} set curve "$plot.Wells Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Generation} set curve "$plot.Wells Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Generation} set curve "$plot.Wells Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Generation} set curve "$plot.Wells Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Generation} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Rocky Reach} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Rocky Reach" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Rocky Reach Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 703 707 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {MW} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Pool Elevation} set curve "$plot.Rocky Reach.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Max with Margin} set curve "$plot.Rocky Reach Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Min with Margin} set curve "$plot.Rocky Reach Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Desired Elevation Target} set curve "$plot.Rocky Reach Constraints.Desired Elevation Target" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Desired Elevation Target} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Outflow} set curve "$plot.Rocky Reach.Outflow" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach.Regulated Spill} set curve "$plot.Rocky Reach.Regulated Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Regulated Spill} -1 0 -1 0 "$plot" curve {Rocky Reach.Turbine Release} set curve "$plot.Rocky Reach.Turbine Release" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Turbine Release} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Spill} set curve "$plot.Rocky Reach Constraints.Special Operations Min Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Outflow} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Outflow} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rocky Reach Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 800 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Power} set curve "$plot.Rocky Reach.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Power} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Generation} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Rock Island} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Rock Island" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Rock Island Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 609 613 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Pool Elevation} set curve "$plot.Rock Island.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Max with Margin} set curve "$plot.Rock Island Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Min with Margin} set curve "$plot.Rock Island Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rock Island Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Outflow} set curve "$plot.Rock Island.Outflow" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Outflow} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Outflow} set curve "$plot.Rock Island Constraints.Special Operations Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Rock Island.Regulated Spill} set curve "$plot.Rock Island.Regulated Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Regulated Spill} -1 0 -1 0 "$plot" curve {Rock Island.Turbine Release} set curve "$plot.Rock Island.Turbine Release" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Turbine Release} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Spill} set curve "$plot.Rock Island Constraints.Special Operations Min Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Outflow} set curve "$plot.Rock Island Constraints.Special Operations Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 300 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Power} set curve "$plot.Rock Island.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Power} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Generation} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Wanapum} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Wanapum" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 560 572 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Pool Elevation} set curve "$plot.Wanapum.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Max with Margin} set curve "$plot.Wanapum Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Min with Margin} set curve "$plot.Wanapum Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Pool Elevation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Outflow} set curve "$plot.Wanapum.Outflow" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Outflow} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Outflow} set curve "$plot.Wanapum Constraints.Special Operations Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Wanapum.Regulated Spill} set curve "$plot.Wanapum.Regulated Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Regulated Spill} -1 0 -1 0 "$plot" curve {Wanapum.Turbine Release} set curve "$plot.Wanapum.Turbine Release" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Turbine Release} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Spill} set curve "$plot.Wanapum Constraints.Special Operations Min Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Outflow} set curve "$plot.Wanapum Constraints.Special Operations Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Power} set curve "$plot.Wanapum.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Power} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Priest Rapids} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Priest Rapids" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Priest Rapids Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 481 488 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Pool Elevation} set curve "$plot.Priest Rapids.Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Max with Margin} set curve "$plot.Priest Rapids Constraints.Pool Elevation Max with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Min with Margin} set curve "$plot.Priest Rapids Constraints.Pool Elevation Min with Margin" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Priest Rapids Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Outflow} set curve "$plot.Priest Rapids.Outflow" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Outflow} set curve "$plot.Priest Rapids Constraints.Special Operations Max Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids.Regulated Spill} set curve "$plot.Priest Rapids.Regulated Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Regulated Spill} -1 0 -1 0 "$plot" curve {Priest Rapids.Turbine Release} set curve "$plot.Priest Rapids.Turbine Release" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Spill} set curve "$plot.Priest Rapids Constraints.Special Operations Min Spill" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294945280 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Spill} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Outflow} set curve "$plot.Priest Rapids Constraints.Special Operations Min Outflow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily High Flow} set curve "$plot.Priest Rapids Constraints.Daily High Flow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily High Flow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily Low Flow} set curve "$plot.Priest Rapids Constraints.Daily Low Flow" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily Low Flow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Flow Bands Max Allowable} set curve "$plot.Priest Rapids Constraints.Flow Bands Max Allowable" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289352960 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Flow Bands Max Allowable} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Flow Bands Min Allowable} set curve "$plot.Priest Rapids Constraints.Flow Bands Min Allowable" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4289352960 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Flow Bands Min Allowable} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily High Flow Import} set curve "$plot.Priest Rapids Constraints.Daily High Flow Import" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily High Flow Import} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily Low Flow Import} set curve "$plot.Priest Rapids Constraints.Daily Low Flow Import" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily Low Flow Import} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Priest Rapids Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 600 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Power} set curve "$plot.Priest Rapids.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Power} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Wells Graphs} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Wells Graphs" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wells Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 770.79999999999995 781.20000000000005 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Pool Elevation} set curve "$plot.Wells.Pool Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Max with Margin} set curve "$plot.Wells Constraints.Pool Elevation Max with Margin" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Min with Margin} set curve "$plot.Wells Constraints.Pool Elevation Min with Margin" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Wells Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd 7 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wells Constraints.Desired Elevation Target} set curve "$plot.Wells Constraints.Desired Elevation Target" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Min Pool Elevation} set curve "$plot.Wells Constraints::Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Pool Elevation} -1 -1 -1 0 "$plot" curve {Wells Constraints.Pool Elevation Baseline} set curve "$plot.Wells Constraints.Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Wells Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 405 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Outflow} set curve "$plot.Wells.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Outflow} -1 0 -1 0 "$plot" curve {Wells.Regulated Spill} set curve "$plot.Wells.Regulated Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Regulated Spill} -1 0 -1 0 "$plot" curve {Wells.Turbine Release} set curve "$plot.Wells.Turbine Release" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Turbine Release} -1 0 -1 0 "$plot" curve {Wells Constraints::Special Operations Max Outflow} set curve "$plot.Wells Constraints::Special Operations Max Outflow" "$curve" legendOrd 4 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Outflow} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Max Spill} set curve "$plot.Wells Constraints::Special Operations Max Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Max Turbine Release} set curve "$plot.Wells Constraints::Special Operations Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Turbine Release} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Min Outflow} set curve "$plot.Wells Constraints::Special Operations Min Outflow" "$curve" legendOrd 7 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Outflow} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Min Spill} set curve "$plot.Wells Constraints::Special Operations Min Spill" "$curve" legendOrd 9 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Spill} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Min Turbine Release} set curve "$plot.Wells Constraints::Special Operations Min Turbine Release" "$curve" legendOrd 8 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Turbine Release} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Max Outflow} set curve "$plot.Wells Constraints::Special Operations Soft Max Outflow" "$curve" legendOrd 10 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Outflow} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Max Spill} set curve "$plot.Wells Constraints::Special Operations Soft Max Spill" "$curve" legendOrd 12 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Spill} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Max Turbine Release} set curve "$plot.Wells Constraints::Special Operations Soft Max Turbine Release" "$curve" legendOrd 11 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Turbine Release} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Min Outflow} set curve "$plot.Wells Constraints::Special Operations Soft Min Outflow" "$curve" legendOrd 13 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Outflow} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Min Spill} set curve "$plot.Wells Constraints::Special Operations Soft Min Spill" "$curve" legendOrd 15 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Spill} -1 -1 -1 0 "$plot" curve {Wells Constraints::Special Operations Soft Min Turbine Release} set curve "$plot.Wells Constraints::Special Operations Soft Min Turbine Release" "$curve" legendOrd 14 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Turbine Release} -1 -1 -1 0 "$plot" curve {Wells Constraints.Outflow Baseline} set curve "$plot.Wells Constraints.Outflow Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Turbine Release Baseline} set curve "$plot.Wells Constraints.Turbine Release Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Wells Constraints.Regulated Spill Baseline} set curve "$plot.Wells Constraints.Regulated Spill Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Wells Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 860 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Power} set curve "$plot.Wells.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Power} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Max Generation} set curve "$plot.Wells Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Min Generation} set curve "$plot.Wells Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Max Generation} set curve "$plot.Wells Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Special Operations Soft Min Generation} set curve "$plot.Wells Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Wells Constraints.Power Baseline} set curve "$plot.Wells Constraints.Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells Constraints.Power Baseline} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Rocky Reach Graphs} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Rocky Reach Graphs" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Rocky Reach Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 702.79999999999995 707.20000000000005 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Pool Elevation} set curve "$plot.Rocky Reach.Pool Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Max with Margin} set curve "$plot.Rocky Reach Constraints.Pool Elevation Max with Margin" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Min with Margin} set curve "$plot.Rocky Reach Constraints.Pool Elevation Min with Margin" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd 7 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Desired Elevation Target} set curve "$plot.Rocky Reach Constraints.Desired Elevation Target" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Min Pool Elevation} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Pool Elevation} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints.Pool Elevation Baseline} set curve "$plot.Rocky Reach Constraints.Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rocky Reach Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 405 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Outflow} set curve "$plot.Rocky Reach.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Outflow} -1 0 -1 0 "$plot" curve {Rocky Reach.Regulated Spill} set curve "$plot.Rocky Reach.Regulated Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Regulated Spill} -1 0 -1 0 "$plot" curve {Rocky Reach.Turbine Release} set curve "$plot.Rocky Reach.Turbine Release" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Turbine Release} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Max Outflow} set curve "$plot.Rocky Reach Constraints::Special Operations Max Outflow" "$curve" legendOrd 4 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Outflow} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Max Spill} set curve "$plot.Rocky Reach Constraints::Special Operations Max Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Max Turbine Release} set curve "$plot.Rocky Reach Constraints::Special Operations Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Turbine Release} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Min Outflow} set curve "$plot.Rocky Reach Constraints::Special Operations Min Outflow" "$curve" legendOrd 7 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Outflow} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Min Spill} set curve "$plot.Rocky Reach Constraints::Special Operations Min Spill" "$curve" legendOrd 9 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Spill} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Min Turbine Release} set curve "$plot.Rocky Reach Constraints::Special Operations Min Turbine Release" "$curve" legendOrd 8 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Turbine Release} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Max Outflow} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Max Outflow" "$curve" legendOrd 10 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Outflow} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Max Spill} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Max Spill" "$curve" legendOrd 12 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Spill} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Max Turbine Release} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Max Turbine Release" "$curve" legendOrd 11 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Turbine Release} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Min Outflow} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Min Outflow" "$curve" legendOrd 13 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Outflow} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Min Spill} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Min Spill" "$curve" legendOrd 15 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Spill} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints::Special Operations Soft Min Turbine Release} set curve "$plot.Rocky Reach Constraints::Special Operations Soft Min Turbine Release" "$curve" legendOrd 14 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Turbine Release} -1 -1 -1 0 "$plot" curve {Rocky Reach Constraints.Outflow Baseline} set curve "$plot.Rocky Reach Constraints.Outflow Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Turbine Release Baseline} set curve "$plot.Rocky Reach Constraints.Turbine Release Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Regulated Spill Baseline} set curve "$plot.Rocky Reach Constraints.Regulated Spill Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rocky Reach Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1260 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rocky Reach.Power} set curve "$plot.Rocky Reach.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Power} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Max Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Special Operations Soft Min Generation} set curve "$plot.Rocky Reach Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Rocky Reach Constraints.Power Baseline} set curve "$plot.Rocky Reach Constraints.Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach Constraints.Power Baseline} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Rock Island Graphs} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Rock Island Graphs" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Rock Island Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 608.79999999999995 613.20000000000005 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Pool Elevation} set curve "$plot.Rock Island.Pool Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Max with Margin} set curve "$plot.Rock Island Constraints.Pool Elevation Max with Margin" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Min with Margin} set curve "$plot.Rock Island Constraints.Pool Elevation Min with Margin" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd 7 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Desired Elevation Target} set curve "$plot.Rock Island Constraints.Desired Elevation Target" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Min Pool Elevation} set curve "$plot.Rock Island Constraints::Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Pool Elevation} -1 -1 -1 0 "$plot" curve {Rock Island Constraints.Pool Elevation Baseline} set curve "$plot.Rock Island Constraints.Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Rock Island Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 405 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Outflow} set curve "$plot.Rock Island.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Outflow} -1 0 -1 0 "$plot" curve {Rock Island.Regulated Spill} set curve "$plot.Rock Island.Regulated Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Regulated Spill} -1 0 -1 0 "$plot" curve {Rock Island.Turbine Release} set curve "$plot.Rock Island.Turbine Release" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Turbine Release} -1 0 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Max Outflow} set curve "$plot.Rock Island Constraints::Special Operations Max Outflow" "$curve" legendOrd 4 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Outflow} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Max Spill} set curve "$plot.Rock Island Constraints::Special Operations Max Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Max Turbine Release} set curve "$plot.Rock Island Constraints::Special Operations Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Turbine Release} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Min Outflow} set curve "$plot.Rock Island Constraints::Special Operations Min Outflow" "$curve" legendOrd 7 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Outflow} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Min Spill} set curve "$plot.Rock Island Constraints::Special Operations Min Spill" "$curve" legendOrd 9 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Spill} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Min Turbine Release} set curve "$plot.Rock Island Constraints::Special Operations Min Turbine Release" "$curve" legendOrd 8 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Turbine Release} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Max Outflow} set curve "$plot.Rock Island Constraints::Special Operations Soft Max Outflow" "$curve" legendOrd 10 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Outflow} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Max Spill} set curve "$plot.Rock Island Constraints::Special Operations Soft Max Spill" "$curve" legendOrd 12 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Spill} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Max Turbine Release} set curve "$plot.Rock Island Constraints::Special Operations Soft Max Turbine Release" "$curve" legendOrd 11 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Turbine Release} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Min Outflow} set curve "$plot.Rock Island Constraints::Special Operations Soft Min Outflow" "$curve" legendOrd 13 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Outflow} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Min Spill} set curve "$plot.Rock Island Constraints::Special Operations Soft Min Spill" "$curve" legendOrd 15 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Spill} -1 -1 -1 0 "$plot" curve {Rock Island Constraints::Special Operations Soft Min Turbine Release} set curve "$plot.Rock Island Constraints::Special Operations Soft Min Turbine Release" "$curve" legendOrd 14 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Turbine Release} -1 -1 -1 0 "$plot" curve {Rock Island Constraints.Outflow Baseline} set curve "$plot.Rock Island Constraints.Outflow Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Turbine Release Baseline} set curve "$plot.Rock Island Constraints.Turbine Release Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Regulated Spill Baseline} set curve "$plot.Rock Island Constraints.Regulated Spill Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Rock Island Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 655 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Rock Island.Power} set curve "$plot.Rock Island.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Power} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Max Generation} set curve "$plot.Rock Island Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Special Operations Soft Min Generation} set curve "$plot.Rock Island Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Rock Island Constraints.Power Baseline} set curve "$plot.Rock Island Constraints.Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island Constraints.Power Baseline} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Wanapum Graphs} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Wanapum Graphs" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Wanapum Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 560 572 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Pool Elevation} set curve "$plot.Wanapum.Pool Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Max with Margin} set curve "$plot.Wanapum Constraints.Pool Elevation Max with Margin" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Min with Margin} set curve "$plot.Wanapum Constraints.Pool Elevation Min with Margin" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd 7 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Desired Elevation Target} set curve "$plot.Wanapum Constraints.Desired Elevation Target" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Min Pool Elevation} set curve "$plot.Wanapum Constraints::Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Pool Elevation} -1 -1 -1 0 "$plot" curve {Wanapum Constraints.Pool Elevation Baseline} set curve "$plot.Wanapum Constraints.Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Pool Elevation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Pool Elevation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Wanapum Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Outflow} set curve "$plot.Wanapum.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Outflow} -1 0 -1 0 "$plot" curve {Wanapum.Regulated Spill} set curve "$plot.Wanapum.Regulated Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Regulated Spill} -1 0 -1 0 "$plot" curve {Wanapum.Turbine Release} set curve "$plot.Wanapum.Turbine Release" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Turbine Release} -1 0 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Max Outflow} set curve "$plot.Wanapum Constraints::Special Operations Max Outflow" "$curve" legendOrd 4 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Outflow} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Max Spill} set curve "$plot.Wanapum Constraints::Special Operations Max Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Max Turbine Release} set curve "$plot.Wanapum Constraints::Special Operations Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Turbine Release} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Min Outflow} set curve "$plot.Wanapum Constraints::Special Operations Min Outflow" "$curve" legendOrd 7 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Outflow} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Min Spill} set curve "$plot.Wanapum Constraints::Special Operations Min Spill" "$curve" legendOrd 9 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Spill} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Min Turbine Release} set curve "$plot.Wanapum Constraints::Special Operations Min Turbine Release" "$curve" legendOrd 8 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Turbine Release} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Max Outflow} set curve "$plot.Wanapum Constraints::Special Operations Soft Max Outflow" "$curve" legendOrd 10 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Outflow} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Max Spill} set curve "$plot.Wanapum Constraints::Special Operations Soft Max Spill" "$curve" legendOrd 12 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Spill} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Max Turbine Release} set curve "$plot.Wanapum Constraints::Special Operations Soft Max Turbine Release" "$curve" legendOrd 11 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Turbine Release} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Min Outflow} set curve "$plot.Wanapum Constraints::Special Operations Soft Min Outflow" "$curve" legendOrd 13 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Outflow} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Min Spill} set curve "$plot.Wanapum Constraints::Special Operations Soft Min Spill" "$curve" legendOrd 15 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Spill} -1 -1 -1 0 "$plot" curve {Wanapum Constraints::Special Operations Soft Min Turbine Release} set curve "$plot.Wanapum Constraints::Special Operations Soft Min Turbine Release" "$curve" legendOrd 14 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Turbine Release} -1 -1 -1 0 "$plot" curve {Wanapum Constraints.Outflow Baseline} set curve "$plot.Wanapum Constraints.Outflow Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Turbine Release Baseline} set curve "$plot.Wanapum Constraints.Turbine Release Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Regulated Spill Baseline} set curve "$plot.Wanapum Constraints.Regulated Spill Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Wanapum Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 1050 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wanapum.Power} set curve "$plot.Wanapum.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Power} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Max Generation} set curve "$plot.Wanapum Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Soft Min Generation} set curve "$plot.Wanapum Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Power Baseline} set curve "$plot.Wanapum Constraints.Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Wanapum Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Wanapum Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Priest Rapids Graphs} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Priest Rapids Graphs" "$plotpage" description {} "$plotpage" layout 3 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Priest Rapids Pool Elevation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {ft} {} 0 481 488.19999999999999 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Pool Elevation} set curve "$plot.Priest Rapids.Pool Elevation" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Pool Elevation" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Pool Elevation" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Max with Margin} set curve "$plot.Priest Rapids Constraints.Pool Elevation Max with Margin" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Max with Margin} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Min with Margin} set curve "$plot.Priest Rapids Constraints.Pool Elevation Min with Margin" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Min with Margin} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Pool Elevation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Pool Elevation" "$curve" legendOrd 7 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Pool Elevation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Desired Elevation Target} set curve "$plot.Priest Rapids Constraints.Desired Elevation Target" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Desired Elevation Target} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Pool Elevation} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Pool Elevation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Pool Elevation} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints.Pool Elevation Baseline} set curve "$plot.Priest Rapids Constraints.Pool Elevation Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Pool Elevation Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Pool Elevation w Par Con} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Priest Rapids Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 405 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Outflow} set curve "$plot.Priest Rapids.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids.Regulated Spill} set curve "$plot.Priest Rapids.Regulated Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Regulated Spill} -1 0 -1 0 "$plot" curve {Priest Rapids.Turbine Release} set curve "$plot.Priest Rapids.Turbine Release" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Max Outflow" "$curve" legendOrd 4 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Max Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Min Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Min Outflow" "$curve" legendOrd 7 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Min Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Min Spill" "$curve" legendOrd 9 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Min Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Min Turbine Release" "$curve" legendOrd 8 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Outflow" "$curve" legendOrd 10 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Spill" "$curve" legendOrd 12 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Turbine Release" "$curve" legendOrd 11 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Outflow" "$curve" legendOrd 13 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Spill" "$curve" legendOrd 15 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Turbine Release" "$curve" legendOrd 14 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints.Outflow Baseline} set curve "$plot.Priest Rapids Constraints.Outflow Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Turbine Release Baseline} set curve "$plot.Priest Rapids Constraints.Turbine Release Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Regulated Spill Baseline} set curve "$plot.Priest Rapids Constraints.Regulated Spill Baseline" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {Priest Rapids Generation} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW} {} 0 0 960 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Power} set curve "$plot.Priest Rapids.Power" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Power} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Max Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Max Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Soft Min Generation} set curve "$plot.Priest Rapids Constraints.Special Operations Soft Min Generation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Generation} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Power Baseline} set curve "$plot.Priest Rapids Constraints.Power Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Power Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Special Operations Max Generation w Par Con} set curve "$plot.Priest Rapids Constraints.Special Operations Max Generation w Par Con" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Generation w Par Con} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Priest Rapids Graph w Stranding Bands} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Priest Rapids Graph w Stranding Bands" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Priest Rapids Outflow} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457819.25 2457832.25 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Priest Rapids.Outflow} set curve "$plot.Priest Rapids.Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Outflow} -1 0 -1 0 "$plot" curve {Priest Rapids.Regulated Spill} set curve "$plot.Priest Rapids.Regulated Spill" "$curve" legendOrd 3 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Regulated Spill} -1 0 -1 0 "$plot" curve {Priest Rapids.Turbine Release} set curve "$plot.Priest Rapids.Turbine Release" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Turbine Release} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Max Outflow" "$curve" legendOrd 4 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Max Spill" "$curve" legendOrd 6 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Max Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Max Turbine Release" "$curve" legendOrd 5 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Max Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Min Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Min Outflow" "$curve" legendOrd 7 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Min Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Min Spill" "$curve" legendOrd 9 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Min Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Min Turbine Release" "$curve" legendOrd 8 "$curve" style {Steps} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Min Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Outflow" "$curve" legendOrd 10 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Spill" "$curve" legendOrd 12 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Max Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Max Turbine Release" "$curve" legendOrd 11 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Max Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Outflow} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Outflow" "$curve" legendOrd 13 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Spill} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Spill" "$curve" legendOrd 15 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Spill} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints::Special Operations Soft Min Turbine Release} set curve "$plot.Priest Rapids Constraints::Special Operations Soft Min Turbine Release" "$curve" legendOrd 14 "$curve" style {Steps} "$curve" lineInfo {Dot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Special Operations Soft Min Turbine Release} -1 -1 -1 0 "$plot" curve {Priest Rapids Constraints.Outflow Baseline} set curve "$plot.Priest Rapids Constraints.Outflow Baseline" "$curve" legendOrd 16 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Outflow Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Turbine Release Baseline} set curve "$plot.Priest Rapids Constraints.Turbine Release Baseline" "$curve" legendOrd 17 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Turbine Release Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Regulated Spill Baseline} set curve "$plot.Priest Rapids Constraints.Regulated Spill Baseline" "$curve" legendOrd 18 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Regulated Spill Baseline} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily High Flow} set curve "$plot.Priest Rapids Constraints.Daily High Flow" "$curve" legendOrd 19 "$curve" style {Steps} "$curve" lineInfo {Dash} 1 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily High Flow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily Low Flow} set curve "$plot.Priest Rapids Constraints.Daily Low Flow" "$curve" legendOrd 22 "$curve" style {Steps} "$curve" lineInfo {Dash} 1 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily Low Flow} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily High Flow Import} set curve "$plot.Priest Rapids Constraints.Daily High Flow Import" "$curve" legendOrd 20 "$curve" style {Steps} "$curve" lineInfo {DashDot} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily High Flow Import} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily Low Flow Import} set curve "$plot.Priest Rapids Constraints.Daily Low Flow Import" "$curve" legendOrd 23 "$curve" style {Steps} "$curve" lineInfo {DashDot} 1 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily Low Flow Import} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily High Flow Import Target} set curve "$plot.Priest Rapids Constraints.Daily High Flow Import Target" "$curve" legendOrd 21 "$curve" style {Steps} "$curve" lineInfo {Dot} 1 4278233855 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily High Flow Import Target} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Daily Low Flow Import Target} set curve "$plot.Priest Rapids Constraints.Daily Low Flow Import Target" "$curve" legendOrd 24 "$curve" style {Steps} "$curve" lineInfo {Dot} 1 4278233855 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Daily Low Flow Import Target} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Flow Bands Max Allowable} set curve "$plot.Priest Rapids Constraints.Flow Bands Max Allowable" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 1 4291698869 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Flow Bands Max Allowable} -1 0 -1 0 "$plot" curve {Priest Rapids Constraints.Flow Bands Min Allowable} set curve "$plot.Priest Rapids Constraints.Flow Bands Min Allowable" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {DashDot} 1 4291698869 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids Constraints.Flow Bands Min Allowable} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Constraint Evaluation All} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Constraint Evaluation All" "$plotpage" description {} "$plotpage" layout 2 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Constraint Evaluation - MWH (Any non-zero value is a deviation)} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 -0.59999999999999998 0.59999999999999998 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Constraint Evaluation.Federal Request Deviation} set curve "$plot.Constraint Evaluation.Federal Request Deviation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Federal Request Deviation} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Nonfed Request Deviation} set curve "$plot.Constraint Evaluation.Nonfed Request Deviation" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278212095 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Nonfed Request Deviation} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {Constraint Evaluation - Flow (Any non-zero value is a deviation)} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 -0.59999999999999998 0.59999999999999998 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 -140 0 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Constraint Evaluation.Vernita Bar Protection Level Flow Deficiency} set curve "$plot.Constraint Evaluation.Vernita Bar Protection Level Flow Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4289331200 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Vernita Bar Protection Level Flow Deficiency} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Vernita Bar Spawning Period Max Daylight Flow Exceedance} set curve "$plot.Constraint Evaluation.Vernita Bar Spawning Period Max Daylight Flow Exceedance" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Vernita Bar Spawning Period Max Daylight Flow Exceedance} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Vernita Bar Spawning Period Min Daylight Flow Deficiency} set curve "$plot.Constraint Evaluation.Vernita Bar Spawning Period Min Daylight Flow Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4289352960 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Vernita Bar Spawning Period Min Daylight Flow Deficiency} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Priest Rapids Flow Band Exceedance} set curve "$plot.Constraint Evaluation.Priest Rapids Flow Band Exceedance" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278233600 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Priest Rapids Flow Band Exceedance} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Wells Fish Spill Deficiency} set curve "$plot.Constraint Evaluation.Wells Fish Spill Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4289374720 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Wells Fish Spill Deficiency} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Rock Island Fish Spill Deficiency} set curve "$plot.Constraint Evaluation.Rock Island Fish Spill Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4289396480 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Rock Island Fish Spill Deficiency} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Rocky Reach Fish Spill Deficiency} set curve "$plot.Constraint Evaluation.Rocky Reach Fish Spill Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Rocky Reach Fish Spill Deficiency} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Wanapum Fish Spill Deficiency} set curve "$plot.Constraint Evaluation.Wanapum Fish Spill Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4294923520 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Wanapum Fish Spill Deficiency} -1 0 -1 0 "$plot" curve {Constraint Evaluation.Priest Rapids Fish Spill Deficiency} set curve "$plot.Constraint Evaluation.Priest Rapids Fish Spill Deficiency" "$curve" legendOrd -1 "$curve" style {Steps} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Priest Rapids Fish Spill Deficiency} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {Constraint Evaluation Vernita Bar 8 Hours Below PLF Exceedance (Any non-zero value is a deviation)} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {NONE} {} 0 -0.59999999999999998 0.59999999999999998 f 0 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Constraint Evaluation.Vernita Bar 8 Hours Below PLF Exceedance} set curve "$plot.Constraint Evaluation.Vernita Bar 8 Hours Below PLF Exceedance" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Constraint Evaluation.Vernita Bar 8 Hours Below PLF Exceedance} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 2600 3400 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457740 2457740 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" timeScaleFormulaStart {xBottom} {Start Timestep - 1 Timesteps} "$plot" timeScaleFormulaEnd {xBottom} {Finish Timestep} "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Requests.Nonfed Delivered Energy} set curve "$plot.Requests.Nonfed Delivered Energy" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Nonfed Delivered Energy} -1 0 -1 0 "$plot" curve {Requests.Total Nonfed Request} set curve "$plot.Requests.Total Nonfed Request" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Requests.Total Nonfed Request} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Non Federal HK} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Non Federal HK" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Non-Federal H/K (After Rule Based Simulation)} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MW/kcfs} {} 0 2 8 f 5 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Wells.Power Coefficient} set curve "$plot.Wells.Power Coefficient" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4285726720 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Power Coefficient} -1 -1 -1 0 "$plot" curve {Priest Rapids.Power Coefficient} set curve "$plot.Priest Rapids.Power Coefficient" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Power Coefficient} -1 -1 -1 0 "$plot" curve {Rock Island.Power Coefficient} set curve "$plot.Rock Island.Power Coefficient" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Power Coefficient} -1 -1 -1 0 "$plot" curve {Rocky Reach.Power Coefficient} set curve "$plot.Rocky Reach.Power Coefficient" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278222976 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Power Coefficient} -1 -1 -1 0 "$plot" curve {Wanapum.Power Coefficient} set curve "$plot.Wanapum.Power Coefficient" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4286578816 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Power Coefficient} -1 -1 -1 0 "$plot" curve {Baseline.Priest Rapids_Power Coefficient} set curve "$plot.Baseline.Priest Rapids_Power Coefficient" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Priest Rapids_Power Coefficient} -1 0 -1 0 "$plot" curve {Baseline.Rock Island_Power Coefficient} set curve "$plot.Baseline.Rock Island_Power Coefficient" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Rock Island_Power Coefficient} -1 0 -1 0 "$plot" curve {Baseline.Wells_Power Coefficient} set curve "$plot.Baseline.Wells_Power Coefficient" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4285726720 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Wells_Power Coefficient} -1 0 -1 0 "$plot" curve {Baseline.Wanapum_Power Coefficient} set curve "$plot.Baseline.Wanapum_Power Coefficient" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4286578816 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Wanapum_Power Coefficient} -1 0 -1 0 "$plot" curve {Baseline.Rocky Reach_Power Coefficient} set curve "$plot.Baseline.Rocky Reach_Power Coefficient" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278222976 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Rocky Reach_Power Coefficient} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {Nonfed Energy In Storage Cumm} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.Nonfed Energy In Storage Cumm" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 0 1000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 0 1000 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {NonFederal Energy In Storage Cumulative} set curve "$plot.NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Nonfederal Data.NonFederal Energy In Storage Cumulative} -1 0 -1 0 "$plot" curve {Nonfederal Data.Energy In Storage Cumulative Baseline} set curve "$plot.Nonfederal Data.Energy In Storage Cumulative Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Nonfederal Data.Energy In Storage Cumulative Baseline} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Energy in Storage} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Energy in Storage" "$plotpage" description {} "$plotpage" layout 3 2 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1000 5000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Baseline.Wells_Energy In Storage} set curve "$plot.Baseline.Wells_Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Wells_Energy In Storage} -1 0 -1 0 "$plot" curve {Wells.Energy In Storage} set curve "$plot.Wells.Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Energy In Storage} -1 0 -1 0 "$plotpage" plot 1 set plot "$plotpage.1" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 6000 12000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Baseline.Wanapum_Energy In Storage} set curve "$plot.Baseline.Wanapum_Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Wanapum_Energy In Storage} -1 0 -1 0 "$plot" curve {Wanapum.Energy In Storage} set curve "$plot.Wanapum.Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Energy In Storage} -1 0 -1 0 "$plotpage" plot 3 set plot "$plotpage.3" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 500 3000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Baseline.Rocky Reach_Energy In Storage} set curve "$plot.Baseline.Rocky Reach_Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Rocky Reach_Energy In Storage} -1 0 -1 0 "$plot" curve {Rocky Reach.Energy In Storage} set curve "$plot.Rocky Reach.Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Energy In Storage} -1 0 -1 0 "$plotpage" plot 4 set plot "$plotpage.4" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 1400 3200 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Baseline.Priest Rapids_Energy In Storage} set curve "$plot.Baseline.Priest Rapids_Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Priest Rapids_Energy In Storage} -1 0 -1 0 "$plot" curve {Priest Rapids.Energy In Storage} set curve "$plot.Priest Rapids.Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Energy In Storage} -1 0 -1 0 "$plotpage" plot 6 set plot "$plotpage.6" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 440 620 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Baseline.Rock Island_Energy In Storage} set curve "$plot.Baseline.Rock Island_Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Rock Island_Energy In Storage} -1 0 -1 0 "$plot" curve {Rock Island.Energy In Storage} set curve "$plot.Rock Island.Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Energy In Storage} -1 0 -1 0 "$plotpage" plot 7 set plot "$plotpage.7" "$plot" state {} 4294967295 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {MWH} {} 0 10000 45000 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457660 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Baseline.Nonfederal Data_Energy In Storage} set curve "$plot.Baseline.Nonfederal Data_Energy In Storage" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4278190335 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Nonfederal Data_Energy In Storage} -1 0 -1 0 "$plot" curve {Nonfederal Data.Energy In Storage Baseline} set curve "$plot.Nonfederal Data.Energy In Storage Baseline" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Nonfederal Data.Energy In Storage Baseline} -1 0 -1 0 "$plot" curve {Baseline.Nonfederal Data_NonFederal Energy In Storage Cumulative} set curve "$plot.Baseline.Nonfederal Data_NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Dash} 0 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Baseline.Nonfederal Data_NonFederal Energy In Storage Cumulative} -1 0 -1 0 "$plot" curve {Nonfederal Data.NonFederal Energy In Storage Cumulative} set curve "$plot.Nonfederal Data.NonFederal Energy In Storage Cumulative" "$curve" legendOrd -1 "$curve" style {Lines} "$curve" lineInfo {Solid} 0 4278190080 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Nonfederal Data.NonFederal Energy In Storage Cumulative} -1 0 -1 0 $ws.outputDeviceMgr addPlotPage {NonFed Outflow II} set plotpage "$ws.outputDeviceMgr.PlotPageInfo.NonFed Outflow II" "$plotpage" description {} "$plotpage" layout 1 1 "$plotpage" PlotPrintHdrCfg TopLeft ContType_PlotName {} "$plotpage" PlotPrintHdrCfg TopRight ContType_ModelName {} "$plotpage" PlotPrintHdrCfg BottomLeft ContType_ModelSaveDate {} "$plotpage" PlotPrintHdrCfg BottomRight ContType_PrintDate {} "$plotpage" plot 0 set plot "$plotpage.0" "$plot" state {Non-Federal Outflow II} 4290822336 1 0 "$plot" markersInLegend 0 "$plot" axis {yLeft} {kcfs} {} 0 0 140 f 2 8 5 0 0 {} 1 "$plot" axis {yRight} {} {} 0 0 1000 f 0 8 5 0 0 {} 1 "$plot" axis {xBottom} {Time} {} 0 2457650 2457660 D 23 8 5 0 0 {} 1 "$plot" axis {xTop} {} {} 0 0 0 f 0 8 5 0 0 {} 1 "$plot" axisLabelOrient {yLeft} {} "$plot" axisLabelOrient {yRight} {} "$plot" axisLabelOrient {xBottom} {} "$plot" axisLabelOrient {xTop} {} "$plot" timeScaleAutoOnShow {xBottom} 0 "$plot" grid {major} {Solid} 0 4288716964 1 1 "$plot" grid {minor} {Solid} 0 4290822336 0 0 "$plot" gridAxes {xBottom} {yLeft} "$plot" curve {Chief Joseph::Outflow} set curve "$plot.Chief Joseph::Outflow" "$curve" legendOrd 1 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278255360 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Chief Joseph.Outflow} -1 -1 -1 0 "$plot" curve {Priest Rapids::Outflow} set curve "$plot.Priest Rapids::Outflow" "$curve" legendOrd 6 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4294901760 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Priest Rapids.Outflow} -1 -1 -1 0 "$plot" curve {Rock Island::Outflow} set curve "$plot.Rock Island::Outflow" "$curve" legendOrd 4 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278211840 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rock Island.Outflow} -1 -1 -1 0 "$plot" curve {Rocky Reach::Outflow} set curve "$plot.Rocky Reach::Outflow" "$curve" legendOrd 3 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4289331455 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Rocky Reach.Outflow} -1 -1 -1 0 "$plot" curve {Wanapum::Outflow} set curve "$plot.Wanapum::Outflow" "$curve" legendOrd 5 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4294923520 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wanapum.Outflow} -1 -1 -1 0 "$plot" curve {Wells::Outflow} set curve "$plot.Wells::Outflow" "$curve" legendOrd 2 "$curve" style {Lines} "$curve" lineInfo {Solid} 2 4278255615 "$curve" symbolInfo {None} 0 4278190080 "$curve" slots 0 {} {Wells.Outflow} -1 -1 -1 0 $ws.outputDeviceMgr addModelReport {MidColumbia Policy Details} # Model Report output device configuration $ws.modelReportDevice {MidColumbia Policy Details} { \ Report\ 285147991728\ 0\ \ IdentifierReport Name\ ValueMidColumbia Policy Details\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ X:/Model_Documentation/2014_Revisions/ModelDocumentationAppendix.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueAppendix: Mid-Columbia RPL Policy Details\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ Text\ 285151908384\ 285147991728\ \ IdentifierText Text\ \ Value\ This appendix contains details about each of the Optimization Goals and user-defined RPL Functions in the Mid-Columbia model. It is pre-configured and is generated directly from the model file using the RiverWare Model Report tool. It can thus be quickly regenerated to include all updated details regarding any changes to the policy in the model. <br><br>To update this document: <br>1. Edit each goal's/function's description as needed in the model file.<br>2. Then generate a new report. <br> a. Open the Output Manager and select the MidColumbia Policy Details report. Then click Edit.<br> b. In the Report Settings panel, set the Output File appropriately.<br> c. Click Generate at the bottom of the Model Report Configuration dialog.<br><br>A html file will be created that can then be opened in any web browser to be saved as a pdf file.\ \ TypeText\ DefaultValue\ \ \ IdentifierTextType\ ValuePlain Text\ TypeEnumeration\ DefaultValuePlain Text\ OptionPlain Text\ OptionRich Text\ \ \ \ TableOfContents\ 285151910304\ 285147991728\ \ IdentifierTableOfContents Title\ ValueContents\ TypeSingleLineText\ DefaultValueContents\ \ \ \ Section\ 285151908768\ 285147991728\ \ IdentifierSection Title\ ValueOptimization Goal Set\ TypeSingleLineText\ DefaultValue\ \ \ RplSet\ 285151910560\ 285151908768\ \ IdentifierRplSet SetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierRplSet ShowPolicyGroups\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowUtilityGroups\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowReportGroups\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowGlobalGroups\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowObjName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowAccountName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowType\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotMaxTableCols\ Value0\ TypeInteger\ DefaultValue0\ MinValue0\ MaxValue999\ \ \ IdentifierRplObj SlotPlotWidth\ Value500\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierRplObj SlotPlotHeight\ Value250\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierRplObj SimObjShowType\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowDescriptions\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowNotes\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowRplComments\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ \ Section\ 285151911968\ 285147991728\ \ IdentifierSection Title\ ValueGlobal Functions Set\ TypeSingleLineText\ DefaultValue\ \ \ RplSet\ 285151904160\ 285151911968\ \ IdentifierRplSet SetName\ ValueGlobal Functions Set 1 (from model file)\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierRplSet ShowPolicyGroups\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowUtilityGroups\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowReportGroups\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowGlobalGroups\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowObjName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowAccountName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowType\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotMaxTableCols\ Value0\ TypeInteger\ DefaultValue0\ MinValue0\ MaxValue999\ \ \ IdentifierRplObj SlotPlotWidth\ Value500\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierRplObj SlotPlotHeight\ Value250\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierRplObj SimObjShowType\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowDescriptions\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowNotes\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowRplComments\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ \ Section\ 285151904544\ 285147991728\ \ IdentifierSection Title\ ValuePost-optimization Ruleset\ TypeSingleLineText\ DefaultValue\ \ \ RplSet\ 285151904672\ 285151904544\ \ IdentifierRplSet SetName\ ValueRBS Ruleset (from model file)\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierRplSet ShowPolicyGroups\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowUtilityGroups\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowReportGroups\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplSet ShowGlobalGroups\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowObjName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowAccountName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotShowType\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierRplObj SlotMaxTableCols\ Value0\ TypeInteger\ DefaultValue0\ MinValue0\ MaxValue999\ \ \ IdentifierRplObj SlotPlotWidth\ Value500\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierRplObj SlotPlotHeight\ Value250\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierRplObj SimObjShowType\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowDescriptions\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowNotes\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierShowRplComments\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ \ } $ws.outputDeviceMgr addModelReport {Nonfed_Pool_Elevation_Graph} # Model Report output device configuration $ws.modelReportDevice {Nonfed_Pool_Elevation_Graph} { \ Report\ 285152088224\ 0\ \ IdentifierReport Name\ ValueNonfed_Pool_Elevation_Graph\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Nonfed_Pool_Elevation_Graph.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueNonfed Pool Elevations\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152087968\ 285152088224\ \ IdentifierPlotPage DeviceName\ ValueNonFed Pool Elevation\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {NonFed_Tailwater_Elevation_Graph} # Model Report output device configuration $ws.modelReportDevice {NonFed_Tailwater_Elevation_Graph} { \ Report\ 285152088480\ 0\ \ IdentifierReport Name\ ValueNonFed_Tailwater_Elevation_Graph\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Nonfed_Tailwater_Graph.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueNon-Federal Tailwater Elevation\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152084640\ 285152088480\ \ IdentifierPlotPage DeviceName\ ValueNonFed Tailwater Elevation\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {NonFed_Outflow_Graph} # Model Report output device configuration $ws.modelReportDevice {NonFed_Outflow_Graph} { \ Report\ 285152091040\ 0\ \ IdentifierReport Name\ ValueNonFed_Outflow_Graph\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Nonfed_Outflow_Graph.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueNon-Federal Outflow\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152085280\ 285152091040\ \ IdentifierPlotPage DeviceName\ ValueNonFed Outflow\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {NonFederal_Generation_Graph} # Model Report output device configuration $ws.modelReportDevice {NonFederal_Generation_Graph} { \ Report\ 285152088608\ 0\ \ IdentifierReport Name\ ValueNonFederal_Generation_Graph\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Nonfed_Generation_Graph.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueNon-Federal Generation\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152089760\ 285152088608\ \ IdentifierPlotPage DeviceName\ ValueNonFed Generation\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {NonFed_Regulated_Spill_Graph} # Model Report output device configuration $ws.modelReportDevice {NonFed_Regulated_Spill_Graph} { \ Report\ 285152092064\ 0\ \ IdentifierReport Name\ ValueNonFed_Regulated_Spill_Graph\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Nonfed_Regulated_Spill_Graph.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueNon-Federal Regulated Spill\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152087584\ 285152092064\ \ IdentifierPlotPage DeviceName\ ValueNonFed Regulated Spill\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {NonFed_Turbine_Release_Graph} # Model Report output device configuration $ws.modelReportDevice {NonFed_Turbine_Release_Graph} { \ Report\ 285152088736\ 0\ \ IdentifierReport Name\ ValueNonFed_Turbine_Release_Graph\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS/Nonfed_Turbine_Release_Graph.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueNon-Federal Turbine Release\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152084768\ 285152088736\ \ IdentifierPlotPage DeviceName\ ValueNonFed Turbine Release\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Constraint_Evaluation_All_Graphs} # Model Report output device configuration $ws.modelReportDevice {Constraint_Evaluation_All_Graphs} { \ Report\ 285152091552\ 0\ \ IdentifierReport Name\ ValueConstraint_Evaluation_All_Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS/Constraint_Evaluation_Graphs.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueConstraint Evaluation\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152090784\ 285152091552\ \ IdentifierPlotPage DeviceName\ ValueConstraint Evaluation All\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value800\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value600\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Grand_Coulee_BIAS} # Model Report output device configuration $ws.modelReportDevice {Grand_Coulee_BIAS} { \ Report\ 285152087840\ 0\ \ IdentifierReport Name\ ValueGrand_Coulee_BIAS\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Grand_Coulee_BIAS_Graph.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueGrand Coulee BIAS\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152088992\ 285152087840\ \ IdentifierPlotPage DeviceName\ ValueGrandCouleeBias\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value800\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value550\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Wells_Graphs} # Model Report output device configuration $ws.modelReportDevice {Wells_Graphs} { \ Report\ 285152084896\ 0\ \ IdentifierReport Name\ ValueWells_Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Wells_Graphs.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueWells Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152087712\ 285152084896\ \ IdentifierPlotPage DeviceName\ ValueWells Graphs\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Rocky_Reach_Graphs} # Model Report output device configuration $ws.modelReportDevice {Rocky_Reach_Graphs} { \ Report\ 285152091680\ 0\ \ IdentifierReport Name\ ValueRocky_Reach_Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Rocky_Reach_Graphs.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueRocky Reach Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152098336\ 285152091680\ \ IdentifierPlotPage DeviceName\ ValueRocky Reach Graphs\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Rock_Island_Graphs} # Model Report output device configuration $ws.modelReportDevice {Rock_Island_Graphs} { \ Report\ 285152098976\ 0\ \ IdentifierReport Name\ ValueRock_Island_Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Rock_Island_Graphs.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueRock Island Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152098464\ 285152098976\ \ IdentifierPlotPage DeviceName\ ValueRock Island Graphs\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Wanapum_Graphs} # Model Report output device configuration $ws.modelReportDevice {Wanapum_Graphs} { \ Report\ 285152099104\ 0\ \ IdentifierReport Name\ ValueWanapum_Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Wanapum_Graphs.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueWanapum Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152095136\ 285152099104\ \ IdentifierPlotPage DeviceName\ ValueWanapum Graphs\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Priest_Rapids_Graphs} # Model Report output device configuration $ws.modelReportDevice {Priest_Rapids_Graphs} { \ Report\ 285152097440\ 0\ \ IdentifierReport Name\ ValuePriest_Rapids_Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Priest_Rapids_Graphs.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValuePriest Rapids Graphs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152098848\ 285152097440\ \ IdentifierPlotPage DeviceName\ ValuePriest Rapids Graphs\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1400\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1800\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Nonfed Pool Elevation Table II} # Model Report output device configuration $ws.modelReportDevice {Nonfed Pool Elevation Table II} { \ Report\ 285152100128\ 0\ \ IdentifierReport Name\ ValueNonfed Pool Elevation Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Nonfed_Pool_Elevation_Table_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueReservoir Elevations (inputs into ASPE Calculator)\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ SlotTable\ 285152093088\ 285152100128\ \ IdentifierSlotTable Selection\ \ Value\ RootSelection Version1 \\ RootSel_Name "Slot Table: Slot selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierSlotTable Title\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSlotTable ShowObjName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierSlotTable ShowAccountName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ TabSerSlotRep\ 285151936928\ 285152100128\ \ IdentifierTabular Series Slot Report DeviceName\ ValueNonfed Pool Elevation Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Tailrace Elevations Table II} # Model Report output device configuration $ws.modelReportDevice {Tailrace Elevations Table II} { \ Report\ 285152097568\ 0\ \ IdentifierReport Name\ ValueTailrace Elevations Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Tailrace_Elevations_Table_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueTailrace Elevations Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152095520\ 285152097568\ \ IdentifierTabular Series Slot Report DeviceName\ ValueTailrace Elevations Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Total Project Discharge Table II} # Model Report output device configuration $ws.modelReportDevice {Total Project Discharge Table II} { \ Report\ 285152100384\ 0\ \ IdentifierReport Name\ ValueTotal Project Discharge Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Total_Project_Discharge_Table_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueTotal Project Discharge Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152099616\ 285152100384\ \ IdentifierTabular Series Slot Report DeviceName\ ValueTotal Project Discharge Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Turbine Discharge Table II} # Model Report output device configuration $ws.modelReportDevice {Turbine Discharge Table II} { \ Report\ 285152096160\ 0\ \ IdentifierReport Name\ ValueTurbine Discharge Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Turbine_Discharge_Table_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueTurbine Discharge Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152093728\ 285152096160\ \ IdentifierTabular Series Slot Report DeviceName\ ValueTurbine Discharge Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Spill Discharge Table II} # Model Report output device configuration $ws.modelReportDevice {Spill Discharge Table II} { \ Report\ 285152094112\ 0\ \ IdentifierReport Name\ ValueSpill Discharge Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Spill_Discharge_Table_II.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueSpill Discharge Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152096544\ 285152094112\ \ IdentifierTabular Series Slot Report DeviceName\ ValueSpill Discharge Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Inflow Table II} # Model Report output device configuration $ws.modelReportDevice {Inflow Table II} { \ Report\ 285152094240\ 0\ \ IdentifierReport Name\ ValueInflow Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Inflow_Table_II.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueInflow Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152101536\ 285152094240\ \ IdentifierTabular Series Slot Report DeviceName\ ValueInflow Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Generation Table II} # Model Report output device configuration $ws.modelReportDevice {Generation Table II} { \ Report\ 285152101152\ 0\ \ IdentifierReport Name\ ValueGeneration Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Generation_Table_II.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueGeneration Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152102048\ 285152101152\ \ IdentifierTabular Series Slot Report DeviceName\ ValueGeneration Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Federal BIAS Plan Table II} # Model Report output device configuration $ws.modelReportDevice {Federal BIAS Plan Table II} { \ Report\ 285152103840\ 0\ \ IdentifierReport Name\ ValueFederal BIAS Plan Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Federal_BIAS_Plan_Table_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueFederal BIAS Plan Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152102304\ 285152103840\ \ IdentifierTabular Series Slot Report DeviceName\ ValueFederal BIAS Plan Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addModelReport {Constraint Evaluation Table II} # Model Report output device configuration $ws.modelReportDevice {Constraint Evaluation Table II} { \ Report\ 285152102816\ 0\ \ IdentifierReport Name\ ValueConstraint Evaluation Table II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Constraint_Evaluation_Table_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueConstraint Evaluation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152105376\ 285152102816\ \ IdentifierTabular Series Slot Report DeviceName\ ValueConstraint Evaluation Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addGreenBook {Nonfed Pool Elevation Table} # GreenBook Report Configuration Record $ws.gBookRep {Nonfed Pool Elevation Table} description {RiverWare produced reservoir elevations for nonfed projects.} $ws.gBookRep {Nonfed Pool Elevation Table} tableTitle {Nonfed Pool Elevation Table} $ws.gBookRep {Nonfed Pool Elevation Table} tableSubTitle {The following table is produced by RiverWare, and it is intened that the first row of elevations are automatically input into the ASPE Calculator. Addtional rows of elevations are shown in the event RiverWare fails to produce a reasonable solution the next time it is ran, and the automated process breaks down.

If RiverWare fails to produce a reasonable solution, then EAS reservoir elevation accounts normally populated with RiverWare results will not be updated, and data will not be available for input into the ASPE Calculator. If that occurs, then additional elevations shown below can be manually entered into accounts that are normally updated during a successful RiverWare run.

If RiverWare fails to run succussfully after several attemtps, and the additional reservoir elevations are going to be used as input into the ASPE Calculator, then the additional elevations will need to be manually entered into the following EAS accounts.

EAS Account #5054: Wells Reservoir Elevation
EAS Account #4771 Rocky Reach Reservoir Elevation
EAS Account #4572 Rock Island Reservoir Elevation
EAS Account #5050 Wanapum Reservoir Elevation
EAS Account #3849 Priest Rapids Reservoir Elevation

The ASPE Calculator will then pick up these manually entered reservoir elevations when the Calculator is ran.} $ws.gBookRep {Nonfed Pool Elevation Table} showDescInReport {0} $ws.gBookRep {Nonfed Pool Elevation Table} showTitlesWhere {i} $ws.gBookRep {Nonfed Pool Elevation Table} limitTimesteps {0} $ws.gBookRep {Nonfed Pool Elevation Table} startTimeSecs {6833062800} $ws.gBookRep {Nonfed Pool Elevation Table} endTimeSecs {6833318400} $ws.gBookRep {Nonfed Pool Elevation Table} showNotes {0} $ws.gBookRep {Nonfed Pool Elevation Table} showNotesWhere {p} $ws.gBookRep {Nonfed Pool Elevation Table} omitSlots {0} $ws.gBookRep {Nonfed Pool Elevation Table} omitSlotsWhich {n} $ws.gBookRep {Nonfed Pool Elevation Table} showNansAsBlank {0} $ws.gBookRep {Nonfed Pool Elevation Table} showZerosAsBlank {0} $ws.gBookRep {Nonfed Pool Elevation Table} showUnitsInColHeader {1} $ws.gBookRep {Nonfed Pool Elevation Table} colLabsType {c} $ws.gBookRep {Nonfed Pool Elevation Table} wrapColLabsSpaces {1} $ws.gBookRep {Nonfed Pool Elevation Table} wrapColLabsPunct {1} $ws.gBookRep {Nonfed Pool Elevation Table} aggMethod {n} $ws.gBookRep {Nonfed Pool Elevation Table} aggFixedSteps {7} $ws.gBookRep {Nonfed Pool Elevation Table} pageBreakAfterSumRow {0} $ws.gBookRep {Nonfed Pool Elevation Table} slot {Wells.Pool Elevation} -1 {Wells} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Nonfed Pool Elevation Table} slot {Rocky Reach.Pool Elevation} -1 {Rocky Reach} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Nonfed Pool Elevation Table} slot {Rock Island.Pool Elevation} -1 {Rock Island} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Nonfed Pool Elevation Table} slot {Wanapum.Pool Elevation} -1 {Wanapum} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Nonfed Pool Elevation Table} slot {Priest Rapids.Pool Elevation} -1 {Priest Rapids} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Nonfed Pool Elevation Table} outputType {h} $ws.gBookRep {Nonfed Pool Elevation Table} textPath {} $ws.gBookRep {Nonfed Pool Elevation Table} htmlPath {D:\RiverWareData\RW_PLOTS\Nonfed_Pool_Elevation_Table.html} $ws.gBookRep {Nonfed Pool Elevation Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Nonfed Pool Elevation Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Nonfed Pool Elevation Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Nonfed Pool Elevation Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Nonfed Pool Elevation Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Nonfed Pool Elevation Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Nonfed Pool Elevation Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Nonfed Pool Elevation Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Nonfed Pool Elevation Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Nonfed Pool Elevation Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Nonfed Pool Elevation Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Tailrace Elevations Table} # GreenBook Report Configuration Record $ws.gBookRep {Tailrace Elevations Table} description {Average hour ending tailrace elevations produced by RiverWare.} $ws.gBookRep {Tailrace Elevations Table} tableTitle {Tailrace Elevations} $ws.gBookRep {Tailrace Elevations Table} tableSubTitle {} $ws.gBookRep {Tailrace Elevations Table} showDescInReport {1} $ws.gBookRep {Tailrace Elevations Table} showTitlesWhere {i} $ws.gBookRep {Tailrace Elevations Table} limitTimesteps {0} $ws.gBookRep {Tailrace Elevations Table} startTimeSecs {6833062800} $ws.gBookRep {Tailrace Elevations Table} endTimeSecs {6833318400} $ws.gBookRep {Tailrace Elevations Table} showNotes {0} $ws.gBookRep {Tailrace Elevations Table} showNotesWhere {p} $ws.gBookRep {Tailrace Elevations Table} omitSlots {0} $ws.gBookRep {Tailrace Elevations Table} omitSlotsWhich {n} $ws.gBookRep {Tailrace Elevations Table} showNansAsBlank {0} $ws.gBookRep {Tailrace Elevations Table} showZerosAsBlank {0} $ws.gBookRep {Tailrace Elevations Table} showUnitsInColHeader {1} $ws.gBookRep {Tailrace Elevations Table} colLabsType {d} $ws.gBookRep {Tailrace Elevations Table} wrapColLabsSpaces {1} $ws.gBookRep {Tailrace Elevations Table} wrapColLabsPunct {1} $ws.gBookRep {Tailrace Elevations Table} aggMethod {n} $ws.gBookRep {Tailrace Elevations Table} aggFixedSteps {7} $ws.gBookRep {Tailrace Elevations Table} pageBreakAfterSumRow {0} $ws.gBookRep {Tailrace Elevations Table} slot {Wells.Tailwater Elevation} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Tailrace Elevations Table} slot {Rocky Reach.Tailwater Elevation} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Tailrace Elevations Table} slot {Rock Island.Tailwater Elevation} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Tailrace Elevations Table} slot {Wanapum.Tailwater Elevation} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Tailrace Elevations Table} slot {Priest Rapids.Tailwater Elevation} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Tailrace Elevations Table} outputType {h} $ws.gBookRep {Tailrace Elevations Table} textPath {} $ws.gBookRep {Tailrace Elevations Table} htmlPath {D:\RiverWareData\RW_PLOTS\Tailrace_Elevations_Table.html} $ws.gBookRep {Tailrace Elevations Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Tailrace Elevations Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Tailrace Elevations Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Tailrace Elevations Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Tailrace Elevations Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Tailrace Elevations Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Tailrace Elevations Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Tailrace Elevations Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Tailrace Elevations Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Tailrace Elevations Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Tailrace Elevations Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Total Project Discharge Table} # GreenBook Report Configuration Record $ws.gBookRep {Total Project Discharge Table} description {Average hour ending total project discharge produced by RiverWare} $ws.gBookRep {Total Project Discharge Table} tableTitle {Total Project Discharge} $ws.gBookRep {Total Project Discharge Table} tableSubTitle {} $ws.gBookRep {Total Project Discharge Table} showDescInReport {1} $ws.gBookRep {Total Project Discharge Table} showTitlesWhere {i} $ws.gBookRep {Total Project Discharge Table} limitTimesteps {0} $ws.gBookRep {Total Project Discharge Table} startTimeSecs {6833062800} $ws.gBookRep {Total Project Discharge Table} endTimeSecs {6833073600} $ws.gBookRep {Total Project Discharge Table} showNotes {0} $ws.gBookRep {Total Project Discharge Table} showNotesWhere {p} $ws.gBookRep {Total Project Discharge Table} omitSlots {0} $ws.gBookRep {Total Project Discharge Table} omitSlotsWhich {n} $ws.gBookRep {Total Project Discharge Table} showNansAsBlank {0} $ws.gBookRep {Total Project Discharge Table} showZerosAsBlank {0} $ws.gBookRep {Total Project Discharge Table} showUnitsInColHeader {1} $ws.gBookRep {Total Project Discharge Table} colLabsType {d} $ws.gBookRep {Total Project Discharge Table} wrapColLabsSpaces {1} $ws.gBookRep {Total Project Discharge Table} wrapColLabsPunct {1} $ws.gBookRep {Total Project Discharge Table} aggMethod {n} $ws.gBookRep {Total Project Discharge Table} aggFixedSteps {7} $ws.gBookRep {Total Project Discharge Table} pageBreakAfterSumRow {1} $ws.gBookRep {Total Project Discharge Table} slot {Chief Joseph.Outflow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Total Project Discharge Table} slot {Wells.Outflow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Total Project Discharge Table} slot {Rocky Reach.Outflow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Total Project Discharge Table} slot {Rock Island.Outflow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Total Project Discharge Table} slot {Wanapum.Outflow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Total Project Discharge Table} slot {Priest Rapids.Outflow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Total Project Discharge Table} outputType {h} $ws.gBookRep {Total Project Discharge Table} textPath {} $ws.gBookRep {Total Project Discharge Table} htmlPath {D:\RiverWareData\RW_PLOTS\Total_Project_Discharge_Table.html} $ws.gBookRep {Total Project Discharge Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Total Project Discharge Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Total Project Discharge Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Total Project Discharge Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Total Project Discharge Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Total Project Discharge Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Total Project Discharge Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Total Project Discharge Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Total Project Discharge Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Total Project Discharge Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Total Project Discharge Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Turbine Discharge Table} # GreenBook Report Configuration Record $ws.gBookRep {Turbine Discharge Table} description {Average hour ending turbine discharge produced by RiverWare} $ws.gBookRep {Turbine Discharge Table} tableTitle {Turbine Discharge} $ws.gBookRep {Turbine Discharge Table} tableSubTitle {} $ws.gBookRep {Turbine Discharge Table} showDescInReport {1} $ws.gBookRep {Turbine Discharge Table} showTitlesWhere {i} $ws.gBookRep {Turbine Discharge Table} limitTimesteps {0} $ws.gBookRep {Turbine Discharge Table} startTimeSecs {6833062800} $ws.gBookRep {Turbine Discharge Table} endTimeSecs {6833318400} $ws.gBookRep {Turbine Discharge Table} showNotes {0} $ws.gBookRep {Turbine Discharge Table} showNotesWhere {p} $ws.gBookRep {Turbine Discharge Table} omitSlots {0} $ws.gBookRep {Turbine Discharge Table} omitSlotsWhich {n} $ws.gBookRep {Turbine Discharge Table} showNansAsBlank {0} $ws.gBookRep {Turbine Discharge Table} showZerosAsBlank {0} $ws.gBookRep {Turbine Discharge Table} showUnitsInColHeader {1} $ws.gBookRep {Turbine Discharge Table} colLabsType {d} $ws.gBookRep {Turbine Discharge Table} wrapColLabsSpaces {1} $ws.gBookRep {Turbine Discharge Table} wrapColLabsPunct {1} $ws.gBookRep {Turbine Discharge Table} aggMethod {n} $ws.gBookRep {Turbine Discharge Table} aggFixedSteps {7} $ws.gBookRep {Turbine Discharge Table} pageBreakAfterSumRow {1} $ws.gBookRep {Turbine Discharge Table} slot {Chief Joseph.Turbine Release} -1 {Chief Joseph} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Turbine Discharge Table} slot {Wells.Turbine Release} -1 {Wells} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Turbine Discharge Table} slot {Rocky Reach.Turbine Release} -1 {Rocky Reach} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Turbine Discharge Table} slot {Rock Island.Turbine Release} -1 {Rock Island} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Turbine Discharge Table} slot {Wanapum.Turbine Release} -1 {Wanapum} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Turbine Discharge Table} slot {Priest Rapids.Turbine Release} -1 {Pries Rapids} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Turbine Discharge Table} outputType {h} $ws.gBookRep {Turbine Discharge Table} textPath {} $ws.gBookRep {Turbine Discharge Table} htmlPath {D:\RiverWareData\RW_PLOTS\Turbine_Discharge_Table.html} $ws.gBookRep {Turbine Discharge Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Turbine Discharge Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Turbine Discharge Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Turbine Discharge Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Turbine Discharge Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Turbine Discharge Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Turbine Discharge Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Turbine Discharge Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Turbine Discharge Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Turbine Discharge Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Turbine Discharge Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Spill Discharge Table} # GreenBook Report Configuration Record $ws.gBookRep {Spill Discharge Table} description {Spill discharge prodcued by RiverWare} $ws.gBookRep {Spill Discharge Table} tableTitle {Spill Discharge} $ws.gBookRep {Spill Discharge Table} tableSubTitle {} $ws.gBookRep {Spill Discharge Table} showDescInReport {1} $ws.gBookRep {Spill Discharge Table} showTitlesWhere {i} $ws.gBookRep {Spill Discharge Table} limitTimesteps {0} $ws.gBookRep {Spill Discharge Table} startTimeSecs {6833062800} $ws.gBookRep {Spill Discharge Table} endTimeSecs {6833318400} $ws.gBookRep {Spill Discharge Table} showNotes {0} $ws.gBookRep {Spill Discharge Table} showNotesWhere {p} $ws.gBookRep {Spill Discharge Table} omitSlots {0} $ws.gBookRep {Spill Discharge Table} omitSlotsWhich {n} $ws.gBookRep {Spill Discharge Table} showNansAsBlank {0} $ws.gBookRep {Spill Discharge Table} showZerosAsBlank {0} $ws.gBookRep {Spill Discharge Table} showUnitsInColHeader {1} $ws.gBookRep {Spill Discharge Table} colLabsType {d} $ws.gBookRep {Spill Discharge Table} wrapColLabsSpaces {1} $ws.gBookRep {Spill Discharge Table} wrapColLabsPunct {1} $ws.gBookRep {Spill Discharge Table} aggMethod {n} $ws.gBookRep {Spill Discharge Table} aggFixedSteps {7} $ws.gBookRep {Spill Discharge Table} pageBreakAfterSumRow {1} $ws.gBookRep {Spill Discharge Table} slot {Wells.Spill} -1 {Wells} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Spill Discharge Table} slot {Rocky Reach.Spill} -1 {Rocky Reach} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Spill Discharge Table} slot {Rock Island.Spill} -1 {Rock Island} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Spill Discharge Table} slot {Wanapum.Spill} -1 {Wanapum} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Spill Discharge Table} slot {Priest Rapids.Spill} -1 {Priest Rapids} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Spill Discharge Table} outputType {h} $ws.gBookRep {Spill Discharge Table} textPath {} $ws.gBookRep {Spill Discharge Table} htmlPath {D:\RiverWareData\RW_PLOTS\Spill_Discharge_Table.html} $ws.gBookRep {Spill Discharge Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Spill Discharge Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Spill Discharge Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Spill Discharge Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Spill Discharge Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Spill Discharge Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Spill Discharge Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Spill Discharge Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Spill Discharge Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Spill Discharge Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Spill Discharge Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Inflow Table} # GreenBook Report Configuration Record $ws.gBookRep {Inflow Table} description {Average hour ending total project inflow produced by RiverWare} $ws.gBookRep {Inflow Table} tableTitle {Inflow} $ws.gBookRep {Inflow Table} tableSubTitle {} $ws.gBookRep {Inflow Table} showDescInReport {1} $ws.gBookRep {Inflow Table} showTitlesWhere {i} $ws.gBookRep {Inflow Table} limitTimesteps {0} $ws.gBookRep {Inflow Table} startTimeSecs {6833062800} $ws.gBookRep {Inflow Table} endTimeSecs {6833318400} $ws.gBookRep {Inflow Table} showNotes {0} $ws.gBookRep {Inflow Table} showNotesWhere {p} $ws.gBookRep {Inflow Table} omitSlots {0} $ws.gBookRep {Inflow Table} omitSlotsWhich {n} $ws.gBookRep {Inflow Table} showNansAsBlank {0} $ws.gBookRep {Inflow Table} showZerosAsBlank {0} $ws.gBookRep {Inflow Table} showUnitsInColHeader {1} $ws.gBookRep {Inflow Table} colLabsType {d} $ws.gBookRep {Inflow Table} wrapColLabsSpaces {1} $ws.gBookRep {Inflow Table} wrapColLabsPunct {1} $ws.gBookRep {Inflow Table} aggMethod {n} $ws.gBookRep {Inflow Table} aggFixedSteps {7} $ws.gBookRep {Inflow Table} pageBreakAfterSumRow {1} $ws.gBookRep {Inflow Table} slot {Wells.Inflow Sum} -1 {Wells} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Inflow Table} slot {Rocky Reach.Inflow Sum} -1 {Rocky Reach} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Inflow Table} slot {Rock Island.Inflow Sum} -1 {Rock Island} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Inflow Table} slot {Wanapum.Inflow Sum} -1 {Wanapum} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Inflow Table} slot {Priest Rapids.Inflow Sum} -1 {Priest Rapids} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Inflow Table} outputType {h} $ws.gBookRep {Inflow Table} textPath {} $ws.gBookRep {Inflow Table} htmlPath {D:\RiverWareData\RW_PLOTS\Inflow_Table.html} $ws.gBookRep {Inflow Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Inflow Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Inflow Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Inflow Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Inflow Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Inflow Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Inflow Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Inflow Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Inflow Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Inflow Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Inflow Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Generation Table} # GreenBook Report Configuration Record $ws.gBookRep {Generation Table} description {Average hour ending generation produced by RiverWare} $ws.gBookRep {Generation Table} tableTitle {Generation} $ws.gBookRep {Generation Table} tableSubTitle {} $ws.gBookRep {Generation Table} showDescInReport {1} $ws.gBookRep {Generation Table} showTitlesWhere {i} $ws.gBookRep {Generation Table} limitTimesteps {0} $ws.gBookRep {Generation Table} startTimeSecs {6833062800} $ws.gBookRep {Generation Table} endTimeSecs {6833318400} $ws.gBookRep {Generation Table} showNotes {0} $ws.gBookRep {Generation Table} showNotesWhere {p} $ws.gBookRep {Generation Table} omitSlots {0} $ws.gBookRep {Generation Table} omitSlotsWhich {n} $ws.gBookRep {Generation Table} showNansAsBlank {0} $ws.gBookRep {Generation Table} showZerosAsBlank {0} $ws.gBookRep {Generation Table} showUnitsInColHeader {1} $ws.gBookRep {Generation Table} colLabsType {d} $ws.gBookRep {Generation Table} wrapColLabsSpaces {1} $ws.gBookRep {Generation Table} wrapColLabsPunct {1} $ws.gBookRep {Generation Table} aggMethod {n} $ws.gBookRep {Generation Table} aggFixedSteps {7} $ws.gBookRep {Generation Table} pageBreakAfterSumRow {1} $ws.gBookRep {Generation Table} slot {Grand Coulee.Energy} -1 {Grand Couleed} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} slot {Chief Joseph.Energy} -1 {Chief Joseph} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} slot {Wells.Energy} -1 {Wells} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} slot {Rocky Reach.Energy} -1 {Rocky Reach} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} slot {Rock Island.Energy} -1 {Rock Island} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} slot {Wanapum.Energy} -1 {Wanapum} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} slot {Priest Rapids.Energy} -1 {Priest Rapids} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Generation Table} outputType {h} $ws.gBookRep {Generation Table} textPath {} $ws.gBookRep {Generation Table} htmlPath {D:\RiverWareData\RW_PLOTS\Generation_Table.html} $ws.gBookRep {Generation Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Generation Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Generation Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Generation Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Generation Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Generation Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Generation Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Generation Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Generation Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Generation Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Generation Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Federal BIAS Plan Table} # GreenBook Report Configuration Record $ws.gBookRep {Federal BIAS Plan Table} description {Average hour ending Federal BIAS plan produced by RiverWare} $ws.gBookRep {Federal BIAS Plan Table} tableTitle {Federal BIAS Plan} $ws.gBookRep {Federal BIAS Plan Table} tableSubTitle {} $ws.gBookRep {Federal BIAS Plan Table} showDescInReport {1} $ws.gBookRep {Federal BIAS Plan Table} showTitlesWhere {i} $ws.gBookRep {Federal BIAS Plan Table} limitTimesteps {0} $ws.gBookRep {Federal BIAS Plan Table} startTimeSecs {6833062800} $ws.gBookRep {Federal BIAS Plan Table} endTimeSecs {6833318400} $ws.gBookRep {Federal BIAS Plan Table} showNotes {0} $ws.gBookRep {Federal BIAS Plan Table} showNotesWhere {p} $ws.gBookRep {Federal BIAS Plan Table} omitSlots {0} $ws.gBookRep {Federal BIAS Plan Table} omitSlotsWhich {n} $ws.gBookRep {Federal BIAS Plan Table} showNansAsBlank {0} $ws.gBookRep {Federal BIAS Plan Table} showZerosAsBlank {0} $ws.gBookRep {Federal BIAS Plan Table} showUnitsInColHeader {1} $ws.gBookRep {Federal BIAS Plan Table} colLabsType {d} $ws.gBookRep {Federal BIAS Plan Table} wrapColLabsSpaces {1} $ws.gBookRep {Federal BIAS Plan Table} wrapColLabsPunct {1} $ws.gBookRep {Federal BIAS Plan Table} aggMethod {n} $ws.gBookRep {Federal BIAS Plan Table} aggFixedSteps {7} $ws.gBookRep {Federal BIAS Plan Table} pageBreakAfterSumRow {1} $ws.gBookRep {Federal BIAS Plan Table} slot {Grand Coulee Constraints.Bias Negative Limit} -1 {Federal BIAS Negative Limit} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Federal BIAS Plan Table} slot {Grand Coulee Constraints.Bias} -1 {Federal BIAS Plan} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Federal BIAS Plan Table} slot {Grand Coulee Constraints.Bias Positive Limit} -1 {Federal BIAS Positive Limit} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Federal BIAS Plan Table} outputType {h} $ws.gBookRep {Federal BIAS Plan Table} textPath {} $ws.gBookRep {Federal BIAS Plan Table} htmlPath {D:\RiverWareData\RW_PLOTS\Federal_BIAS_Table.html} $ws.gBookRep {Federal BIAS Plan Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Federal BIAS Plan Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Federal BIAS Plan Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Federal BIAS Plan Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Federal BIAS Plan Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Federal BIAS Plan Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Federal BIAS Plan Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Federal BIAS Plan Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Federal BIAS Plan Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Federal BIAS Plan Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Federal BIAS Plan Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addGreenBook {Constraint Evaluation Table} # GreenBook Report Configuration Record $ws.gBookRep {Constraint Evaluation Table} description {Average hour ending or day ending constraint evaluation. Any non-zero amounts are constraint deviations, and should be investigated.} $ws.gBookRep {Constraint Evaluation Table} tableTitle {Constraint Evaluation } $ws.gBookRep {Constraint Evaluation Table} tableSubTitle {} $ws.gBookRep {Constraint Evaluation Table} showDescInReport {1} $ws.gBookRep {Constraint Evaluation Table} showTitlesWhere {i} $ws.gBookRep {Constraint Evaluation Table} limitTimesteps {0} $ws.gBookRep {Constraint Evaluation Table} startTimeSecs {6833062800} $ws.gBookRep {Constraint Evaluation Table} endTimeSecs {6833318400} $ws.gBookRep {Constraint Evaluation Table} showNotes {0} $ws.gBookRep {Constraint Evaluation Table} showNotesWhere {p} $ws.gBookRep {Constraint Evaluation Table} omitSlots {0} $ws.gBookRep {Constraint Evaluation Table} omitSlotsWhich {n} $ws.gBookRep {Constraint Evaluation Table} showNansAsBlank {0} $ws.gBookRep {Constraint Evaluation Table} showZerosAsBlank {0} $ws.gBookRep {Constraint Evaluation Table} showUnitsInColHeader {1} $ws.gBookRep {Constraint Evaluation Table} colLabsType {d} $ws.gBookRep {Constraint Evaluation Table} wrapColLabsSpaces {1} $ws.gBookRep {Constraint Evaluation Table} wrapColLabsPunct {1} $ws.gBookRep {Constraint Evaluation Table} aggMethod {n} $ws.gBookRep {Constraint Evaluation Table} aggFixedSteps {7} $ws.gBookRep {Constraint Evaluation Table} pageBreakAfterSumRow {1} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Rock Island Daily Fish Spill Deficiency} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Rocky Reach Daily Fish Spill Deficiency} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Vernita Bar 8 Hours Below PLF Exceedance} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Vernita Bar Protection Level Flow Deficiency} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Vernita Bar Spawning Period Max Daylight Flow Exceedance} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Vernita Bar Spawning Period Min Daylight Flow Deficiency} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Wanapum Fish Spill Deficiency} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} slot {Constraint Evaluation.Wells Fish Spill Deficiency} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Constraint Evaluation Table} outputType {h} $ws.gBookRep {Constraint Evaluation Table} textPath {} $ws.gBookRep {Constraint Evaluation Table} htmlPath {D:\RiverWareData\RW_PLOTS\Constraint_Evaluation_Table.html} $ws.gBookRep {Constraint Evaluation Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Constraint Evaluation Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Constraint Evaluation Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Constraint Evaluation Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Constraint Evaluation Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Constraint Evaluation Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Constraint Evaluation Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Constraint Evaluation Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Constraint Evaluation Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Constraint Evaluation Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Constraint Evaluation Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addModelReport {Data Validaton} # Model Report output device configuration $ws.modelReportDevice {Data Validaton} { \ Report\ 285152110624\ 0\ \ IdentifierReport Name\ ValueData Validaton\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ ValueD:\RiverWareData\RW_PLOTS\Data_Validation_Report.html\ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueData Validaton\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ ScalarValGrid\ 285152109984\ 285152110624\ \ IdentifierScalarValGrid Title\ ValueSpecial Operations Failures\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierScalarValGrid ObjList\ \ Value\ \
  • Wells Data Validation
  • \
  • Rocky Reach Data Validation
  • \
  • Rock Island Data Validation
  • \
  • Wanapum Data Validation
  • \
  • Priest Rapids Data Validation
  • \
    \
    \ TypeNameList\ NameListTitleScalar Slot Grid Row Objects\ NameListTypeListType_SimObj\ NameListSimObjClass\ NameListSlotTypesMask0\
    \ \ IdentifierScalarValGrid SlotNameList\ \ Value\ \
  • Special Operations Max Pool Elevation Failure Count
  • \
  • Special Operations Min Pool Elevation Failure Count
  • \
    \
    \ TypeNameList\ NameListTitleScalar Slot Grid Column Slot Names\ NameListTypeListType_SlotName\ NameListSimObjClass\ NameListSlotTypesMask0\
    \
    \ \ ScalarValGrid\ 285151998112\ 285152110624\ \ IdentifierScalarValGrid Title\ ValueSideflow Failures\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierScalarValGrid ObjList\ \ Value\ \
  • Wells Data Validation
  • \
  • Rocky Reach Data Validation
  • \
  • Rock Island Data Validation
  • \
  • Wanapum Data Validation
  • \
  • Priest Rapids Data Validation
  • \
    \
    \ TypeNameList\ NameListTitleScalar Slot Grid Row Objects\ NameListTypeListType_SimObj\ NameListSimObjClass\ NameListSlotTypesMask0\
    \ \ IdentifierScalarValGrid SlotNameList\ \ Value\ \
  • Hydrologic Inflow Adjust Failure Count
  • \
  • Methow River Inflow Failure Count
  • \
  • Okanogan River Inflow Failure Count
  • \
    \
    \ TypeNameList\ NameListTitleScalar Slot Grid Column Slot Names\ NameListTypeListType_SlotName\ NameListSimObjClass\ NameListSlotTypesMask0\
    \
    \ \ ScalarValGrid\ 285151995680\ 285152110624\ \ IdentifierScalarValGrid Title\ ValueSpecial Slots Failures\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierScalarValGrid ObjList\ \ Value\ \
  • Requests Data Validation
  • \
  • Priest Rapids Data Validation
  • \
    \
    \ TypeNameList\ NameListTitleScalar Slot Grid Row Objects\ NameListTypeListType_SimObj\ NameListSimObjClass\ NameListSlotTypesMask0\
    \ \ IdentifierScalarValGrid SlotNameList\ \ Value\ \
  • Nonfed Request Adjustment Failure Count
  • \
  • CHJ Forecast Outflow Failure Count
  • \
    \
    \ TypeNameList\ NameListTitleScalar Slot Grid Column Slot Names\ NameListTypeListType_SlotName\ NameListSimObjClass\ NameListSlotTypesMask0\
    \
    \
    \ } $ws.outputDeviceMgr addGreenBook {Stranding Band Input Table} # GreenBook Report Configuration Record $ws.gBookRep {Stranding Band Input Table} description {Stranding Band Inputs} $ws.gBookRep {Stranding Band Input Table} tableTitle {Stranding Band Inputs} $ws.gBookRep {Stranding Band Input Table} tableSubTitle {} $ws.gBookRep {Stranding Band Input Table} showDescInReport {1} $ws.gBookRep {Stranding Band Input Table} showTitlesWhere {i} $ws.gBookRep {Stranding Band Input Table} limitTimesteps {0} $ws.gBookRep {Stranding Band Input Table} startTimeSecs {6833062800} $ws.gBookRep {Stranding Band Input Table} endTimeSecs {6833318400} $ws.gBookRep {Stranding Band Input Table} showNotes {0} $ws.gBookRep {Stranding Band Input Table} showNotesWhere {p} $ws.gBookRep {Stranding Band Input Table} omitSlots {0} $ws.gBookRep {Stranding Band Input Table} omitSlotsWhich {n} $ws.gBookRep {Stranding Band Input Table} showNansAsBlank {0} $ws.gBookRep {Stranding Band Input Table} showZerosAsBlank {0} $ws.gBookRep {Stranding Band Input Table} showUnitsInColHeader {1} $ws.gBookRep {Stranding Band Input Table} colLabsType {d} $ws.gBookRep {Stranding Band Input Table} wrapColLabsSpaces {1} $ws.gBookRep {Stranding Band Input Table} wrapColLabsPunct {1} $ws.gBookRep {Stranding Band Input Table} aggMethod {n} $ws.gBookRep {Stranding Band Input Table} aggFixedSteps {7} $ws.gBookRep {Stranding Band Input Table} pageBreakAfterSumRow {1} $ws.gBookRep {Stranding Band Input Table} slot {Priest Rapids Constraints.Flow Bands Import} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Input Table} slot {Priest Rapids Constraints.Daily Low Flow Import} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Input Table} slot {Priest Rapids Constraints.Daily High Flow Import} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Input Table} slot {Priest Rapids Constraints.Daily Low Flow Import Target} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Input Table} slot {Priest Rapids Constraints.Daily High Flow Import Target} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Input Table} outputType {h} $ws.gBookRep {Stranding Band Input Table} textPath {} $ws.gBookRep {Stranding Band Input Table} htmlPath {D:\RiverWareData\RW_PLOTS\Stranding_Band_Input_Table.html} $ws.gBookRep {Stranding Band Input Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Stranding Band Input Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Stranding Band Input Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Stranding Band Input Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Stranding Band Input Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Stranding Band Input Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Stranding Band Input Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Stranding Band Input Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Stranding Band Input Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Stranding Band Input Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Stranding Band Input Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addModelReport {Priest Rapids Graph w Stranding Bands II} # Model Report output device configuration $ws.modelReportDevice {Priest Rapids Graph w Stranding Bands II} { \ Report\ 285152109344\ 0\ \ IdentifierReport Name\ ValuePriest Rapids Graph w Stranding Bands II\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Priest_Rapids_Graph_w_Stranding_Bands_II.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValuePriest Rapids Graphs w Stranding Bands\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ PlotPage\ 285152115744\ 285152109344\ \ IdentifierPlotPage DeviceName\ ValuePriest Rapids Graph w Stranding Bands\ TypePlotPageName\ DefaultValue\ \ \ IdentifierPlotPage Title\ ValuePriest Rapids Graph w Stranding Bands\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierPlotPage Width\ Value1800\ TypeInteger\ DefaultValue500\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPage Height\ Value1200\ TypeInteger\ DefaultValue250\ MinValue10\ MaxValue5000\ \ \ IdentifierPlotPageDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierPlotPageDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws.outputDeviceMgr addGreenBook {Stranding Band Output Table} # GreenBook Report Configuration Record $ws.gBookRep {Stranding Band Output Table} description {Stranding Band Outputs} $ws.gBookRep {Stranding Band Output Table} tableTitle {Stranding Band Outputs} $ws.gBookRep {Stranding Band Output Table} tableSubTitle {} $ws.gBookRep {Stranding Band Output Table} showDescInReport {1} $ws.gBookRep {Stranding Band Output Table} showTitlesWhere {i} $ws.gBookRep {Stranding Band Output Table} limitTimesteps {0} $ws.gBookRep {Stranding Band Output Table} startTimeSecs {6833062800} $ws.gBookRep {Stranding Band Output Table} endTimeSecs {6833318400} $ws.gBookRep {Stranding Band Output Table} showNotes {0} $ws.gBookRep {Stranding Band Output Table} showNotesWhere {p} $ws.gBookRep {Stranding Band Output Table} omitSlots {0} $ws.gBookRep {Stranding Band Output Table} omitSlotsWhich {n} $ws.gBookRep {Stranding Band Output Table} showNansAsBlank {0} $ws.gBookRep {Stranding Band Output Table} showZerosAsBlank {0} $ws.gBookRep {Stranding Band Output Table} showUnitsInColHeader {1} $ws.gBookRep {Stranding Band Output Table} colLabsType {d} $ws.gBookRep {Stranding Band Output Table} wrapColLabsSpaces {1} $ws.gBookRep {Stranding Band Output Table} wrapColLabsPunct {1} $ws.gBookRep {Stranding Band Output Table} aggMethod {n} $ws.gBookRep {Stranding Band Output Table} aggFixedSteps {7} $ws.gBookRep {Stranding Band Output Table} pageBreakAfterSumRow {1} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Flow Bands} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Daily Low Flow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Daily High Flow} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Daily Flow Band Range} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Flow Bands Min Allowable} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Flow Bands Max Allowable} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} slot {Priest Rapids Constraints.Daily Flow Band Range Allowable} -1 {} {sum-0 ave-0 min-0 max-0 sta-0 end-0} $ws.gBookRep {Stranding Band Output Table} outputType {h} $ws.gBookRep {Stranding Band Output Table} textPath {} $ws.gBookRep {Stranding Band Output Table} htmlPath {D:\RiverWareData\RW_PLOTS\Stranding_Band_Output_Table.html} $ws.gBookRep {Stranding Band Output Table} cssStyle_title {font-size: 140%; font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Stranding Band Output Table} cssStyle_subtitles {font-family: Verdana, Arial, Helvetica, sans-serif;} $ws.gBookRep {Stranding Band Output Table} cssStyle_colHeaders {font-weight: bold;} $ws.gBookRep {Stranding Band Output Table} cssStyle_rowHeaders {text-align: right; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Stranding Band Output Table} cssStyle_tableCells {font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Stranding Band Output Table} cssStyle_footnotes {color: #0000CC; font-size: smaller; font-family: "Courier New", Courier, mono;} $ws.gBookRep {Stranding Band Output Table} bgColorStr_colHeader {FFFFCC} $ws.gBookRep {Stranding Band Output Table} bgColorStr_rowHeader {FFFFFF} $ws.gBookRep {Stranding Band Output Table} bgColorStr_slotData {FFFFFF} $ws.gBookRep {Stranding Band Output Table} bgColorStr_notes {E8E8E8} $ws.gBookRep {Stranding Band Output Table} bgColorStr_summary {FFFFCC} $ws.outputDeviceMgr addModelReport {Stranding Band Inputs and Outputs} # Model Report output device configuration $ws.modelReportDevice {Stranding Band Inputs and Outputs} { \ Report\ 285152112928\ 0\ \ IdentifierReport Name\ ValueStranding Band Inputs and Outputs\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport File\ \ Value\ D:\RiverWareData\RW_PLOTS\Stranding_Band_Input_and_Output_Table.html\ \ TypeFileName\ DefaultValue\ PreferredFileExtHTML File, html, htm\ \ \ IdentifierReport Title\ ValueStranding Band Input and Output Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierReport ShowIcons\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport DisplayControls\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport EmbedImages\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport BodyFont\ Valuefont-family: sans-serif;\ TypeFont\ DefaultValuefont-family: sans-serif;\ \ \ IdentifierReport TitleFont\ Valuefont: bold 130% sans-serif;\ TypeFont\ DefaultValuefont: bold 130% sans-serif;\ \ \ IdentifierReport Level1Font\ Valuefont: 130% sans-serif;\ TypeFont\ DefaultValuefont: 130% sans-serif;\ \ \ IdentifierReport Level2Font\ Valuefont: 120% sans-serif;\ TypeFont\ DefaultValuefont: 120% sans-serif;\ \ \ IdentifierReport Level3Font\ Valuefont: 110% sans-serif;\ TypeFont\ DefaultValuefont: 110% sans-serif;\ \ \ IdentifierReport Level4Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport Level5Font\ Valuefont: italic 100% sans-serif;\ TypeFont\ DefaultValuefont: italic 100% sans-serif;\ \ \ IdentifierReport LabelFont\ Valuefont: bold 100% sans-serif;\ TypeFont\ DefaultValuefont: bold 100% sans-serif;\ \ \ IdentifierReport IncludeDateInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ IdentifierReport IncludeTimeInName\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ TabSerSlotRep\ 285152115360\ 285152112928\ \ IdentifierTabular Series Slot Report DeviceName\ ValueStranding Band Input Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ TabSerSlotRep\ 285151983776\ 285152112928\ \ IdentifierTabular Series Slot Report DeviceName\ ValueStranding Band Output Table\ TypeTabSerSlotRepName\ DefaultValue\ \ \ IdentifierTabular Series Slot Report Format\ ValueHTML\ TypeBoolean\ DefaultValueTrue\ TrueStringHTML\ FalseStringText\ \ \ IdentifierTabSerSlotRepDateTimeStart\ ValueStart Timestep - 1 Timesteps\ TypeRplDateTime\ DefaultValue\ \ \ IdentifierTabSerSlotRepDateTimeEnd\ ValueFinish Timestep\ TypeRplDateTime\ DefaultValue\ \ \ \ } $ws collectRBSRunAnalysisInfo 1 $ws collectRPLPerformanceInfo 1 $ws RPLNumericComparisonTolerance 0 $ws RPLWhileExprMaxIterations 10000 # Section: Name Maps set mgr "$ws.nameMapMgr" "$mgr" format 2 "$mgr" map {MidC Sim Test1 Input} set map "$mgr.MidC Sim Test1 Input" "$map" dispOrder Priority "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {InputDischarge!X6:X6} -32765 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Turbine Release" \ RootSel_End \ } {InputDischarge!G6:G53} -32759 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {InputDischarge!O6:O53} -32756 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_End \ } {InputDischarge!Y6:Y6} -32764 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Turbine Release" \ RootSel_End \ } {InputDischarge!H6:H53} -32758 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_End \ } {InputDischarge!P6:P53} -32755 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {InputDischarge!V6:V6} -32767 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_End \ } {InputDischarge!W6:W6} -32766 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_End \ } {InputDischarge!Z6:Z53} -32763 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Turbine Release" \ RootSel_End \ } {InputDischarge!E6:E53} -32747 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Turbine Release" \ RootSel_End \ } {InputDischarge!F6:F53} -32746 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Turbine Release" \ RootSel_End \ } {InputDischarge!I6:I53} -32757 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_End \ } {InputDischarge!AA6:AA6} -32762 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_End \ } {InputDischarge!AB6:AB6} -32761 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Turbine Release" \ RootSel_End \ } {InputDischarge!J6:J53} -32745 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Turbine Release" \ RootSel_End \ } {InputDischarge!K6:K53} -32744 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_End \ } {InputDischarge!M6:M53} -32760 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_End \ } {InputDischarge!N6:N53} -32753 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_End \ } {InputDischarge!Q6:Q53} -32754 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_End \ } {InputDischarge!R6:R53} -32752 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_End \ } {InputDischarge!S6:S53} -32743 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {InputDischarge!BL6:BL53} -32742 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_End \ } {InputDischarge!AL6:AL6} -32741 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Inflow" \ RootSel_End \ } {InputDischarge!BM7:BM7} -32740 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Inflow" \ RootSel_End \ } {InputDischarge!BN7:BN8} -32739 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Inflow" \ RootSel_End \ } {InputDischarge!BO7:BO8} -32738 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_End \ } {InputDischarge!M6:M53} -32737 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_End \ } {InputDischarge!N6:N53} -32736 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {InputDischarge!O6:O53} -32735 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_End \ } {InputDischarge!P6:P53} -32734 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_End \ } {InputDischarge!Q6:Q53} -32733 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_End \ } {InputDischarge!R6:R53} -32732 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_End \ } {InputDischarge!S6:S53} -32731 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_End \ } {InputDischarge!AV6:AV53} -32751 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_End \ } {InputDischarge!AW6:AW53} -32750 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_End \ } {InputDischarge!AX6:AX53} -32749 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_End \ } {InputDischarge!AZ6:AZ53} -32748 "$map" resolve "$mgr" map {Sim Test Output} set map "$mgr.Sim Test Output" "$map" dispOrder Priority "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {D2:D48} -32763 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Name" "Name" "Energy" rf_ON rf_SHOW rf_POS \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Energy" \ RootSel_End \ } {D2:D48} -32762 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_End \ } {F2:F48} -32767 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_End \ } {F2:F48} -32760 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_End \ } {G2:G48} -32766 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_End \ } {H2:H48} -32765 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_End \ } {E2:E48} -32764 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_End \ } {E2:E48} -32761 "$map" resolve "$mgr" map {MidC Opt Test Input} set map "$mgr.MidC Opt Test Input" "$map" dispOrder Priority "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {BL11:BL58} -32767 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {V11:V11} -32766 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_End \ } {W11:W11} -32765 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {X11:X11} -32764 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_End \ } {Y11:Y11} -32763 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_End \ } {Z11:Z11} -32762 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_End \ } {AA11:AA11} -32761 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_End \ } {AB11:AB11} -32760 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_End \ } {AL11:AL11} -32759 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Inflow" \ RootSel_End \ } {BM12:BM12} -32758 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Inflow" \ RootSel_End \ } {BN12:BN13} -32757 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Inflow" \ RootSel_End \ } {BO12:BO13} -32756 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_End \ } {AO11:AO11} -32755 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Inflow" \ RootSel_End \ } {BP12:BP12} -32754 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_End \ } {AV11:AV58} -32753 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_End \ } {AW11:AW58} -32752 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_End \ } {AX11:AX58} -32751 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_End \ } {AZ11:AZ58} -32750 "$map" resolve "$mgr" map {MidC Opt Test Constr} set map "$mgr.MidC Opt Test Constr" "$map" dispOrder Priority "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_End \ } {M11:M58} -32760 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_End \ } {N11:N58} -32759 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Wells Constraints" \ RootSel_End \ } {O11:O58} -32758 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_End \ } {P11:P58} -32757 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_End \ } {Q11:Q58} -32756 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_End \ } {R11:R58} -32755 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_End \ } {S11:S58} -32754 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_End \ } {U11:U58} -32753 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_End \ } {V11:V58} -32752 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Wells Constraints" \ RootSel_End \ } {W11:W58} -32751 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_End \ } {X11:X58} -32750 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_End \ } {Y11:Y58} -32749 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_End \ } {Z11:Z58} -32748 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_End \ } {AA11:AA58} -32747 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_End \ } {E11:E58} -32767 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_End \ } {F11:F58} -32766 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Wells Constraints" \ RootSel_End \ } {G11:G58} -32765 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_End \ } {H11:H58} -32764 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_End \ } {I11:I58} -32763 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_End \ } {J11:J58} -32762 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_End \ } {K11:K58} -32761 "$map" resolve "$mgr" map {MidC Policy Test} set map "$mgr.MidC Policy Test" "$map" dispOrder Priority "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {V6:V29} -32767 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_End \ } {W29:W29} -32766 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {X29:X29} -32765 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_End \ } {Y29:Y29} -32764 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_End \ } {Z29:Z29} -32763 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_End \ } {AA29:AA29} -32762 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_End \ } {AB29:AB29} -32761 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {BL25:BL78} -32760 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Tailwater Elevation" \ RootSel_End \ } {BT:29:BT29} -32759 "$map" resolve "$mgr" map {MidCImprovements2013} set map "$mgr.MidCImprovements2013" "$map" dispOrder Priority "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {GCL_INFLOW_KCFS} 0 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Requests" \ RootSel_Slot "Requests.Total Nonfed Request" \ RootSel_End \ } {NONFED_REQUEST_MWH} 2 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Tailwater Elevation" \ RootSel_End \ } {GCL_TAILWATER_FT} 6 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {GCL_UNCOORD_REQUEST_MWH} 8 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {CHJ_UNCOORD_REQUEST_MWH} 9 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Accumulated Exchange" \ RootSel_End \ } {CHJ_COORD_EXCH_ACCUM} 7 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Accumulated Exchange" \ RootSel_End \ } {GCL_COORD_EXCH_ACCUM} 10 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Chelan River" \ RootSel_Slot "Chelan River.Inflow" \ RootSel_End \ } {CHELAN_RIVER_FLOW_KCFS} 3 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Crab Creek" \ RootSel_Slot "Crab Creek.Inflow" \ RootSel_End \ } {CRAB_CREEK_FLOW_KCFS} 11 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Entiat River" \ RootSel_Slot "Entiat River.Inflow" \ RootSel_End \ } {ENTIAT_RIVER_FLOW_KCFS} 12 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Methow River" \ RootSel_Slot "Methow River.Inflow" \ RootSel_End \ } {METHOW_RIVER_FLOW_KCFS} 13 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Okanogan River" \ RootSel_Slot "Okanogan River.Inflow" \ RootSel_End \ } {OKANOGAN_RIVER_FLOW_KCFS} 14 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Wenatchee River.Inflow" \ RootSel_End \ } {WENATCHEE_RIVER_FLOW_KCFS} 15 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_End \ } {CHJ_FOREBAY_ELEV_FT} 4 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {GCL_FOREBAY_ELEV_FT} 16 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_End \ } {PRD_FOREBAY_ELEV_FT} 17 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_End \ } {RIS_FOREBAY_ELEV_FT} 18 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_End \ } {RRH_FOREBAY_ELEV_FT} 19 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_End \ } {WAN_FOREBAY_ELEV_FT} 20 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {WEL_FOREBAY_ELEV_FT} 21 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Outflow" \ RootSel_End \ } {CHJ_TOTAL_DISC_KCFSH} 5 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_End \ } {GCL_TOTAL_DISC_KCFSH} 22 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_End \ } {PRD_TOTAL_DISC_KCFSH} 23 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_End \ } {RIS_TOTAL_DISC_KCFSH} 24 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_End \ } {RRH_TOTAL_DISC_KCFSH} 25 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_End \ } {WAN_TOTAL_DISC_KCFSH} 26 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {WEL_TOTAL_DISC_KCFSH} 27 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_Slot "Priest Rapids Constraints.CHJ Forecast Outflow" \ RootSel_End \ } {CHJ_FORECAST_OUT_KCFS} 28 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_End \ } {CHJ_SPILL_KCFS} 29 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_End \ } {GCL_SPILL_KCFS} 30 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_End \ } {PRD_SPILL_KCFS} 31 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_End \ } {RIS_SPILL_KCFS} 32 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_End \ } {RRH_SPILL_KCFS} 33 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wanapum" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_End \ } {WAN_SPILL_KCFS} 34 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Wells" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {WEL_SPILL_KCFS} 35 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Bias" \ RootSel_End \ } {CHJ_INTEG_BIAS_MWH} 36 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Bias" \ RootSel_End \ } {GCL_INTEG_BIAS_MWH} 37 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Federal Constraints" \ RootSel_Slot "Federal Constraints.Bias Negative Limit" \ RootSel_End \ } {FED_BIAS_NEG_LIMIT_MW} 38 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Federal Constraints" \ RootSel_Slot "Federal Constraints.Bias Positive Limit" \ RootSel_End \ } {FED_BIAS_POS_LIMIT_MW} 39 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Bias Negative Limit" \ RootSel_End \ } {CHJ_BIAS_NEG_LIMIT_MW} 40 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Bias Positive Limit" \ RootSel_End \ } {CHJ_BIAS_POS_LIMIT_MW} 41 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Bias Negative Limit" \ RootSel_End \ } {GCL_BIAS_NEG_LIMIT_MW} 42 "$map" pair {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Bias Positive Limit" \ RootSel_End \ } {GCL_BIAS_POS_LIMIT_MW} 43 "$map" resolve "$mgr" end # Section: Datasets set mgr "$ws.datasetMgr" "$mgr" format 1 "$mgr" {Excel} {MidC Input Excel} set dataset "$mgr.MidC Input Excel" "$dataset" nameMap {MidCImprovements2013} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/RiverWare Test DataV2.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {2013} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC Output Excel} set dataset "$mgr.MidC Output Excel" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/Mid-C Output.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 0 0 0 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Turbine Release} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Grand Coulee Inflow Forecast} set dataset "$mgr.Grand Coulee Inflow Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {GCL Inflow Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Entiat River Forecast} set dataset "$mgr.Entiat River Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Entiat River Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Methow River Forecast} set dataset "$mgr.Methow River Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Methow River Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Wenatchee River Forecast} set dataset "$mgr.Wenatchee River Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Wenatchee River Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Crab Creek Forecast} set dataset "$mgr.Crab Creek Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Crab Creek Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Chelan River Forecast} set dataset "$mgr.Chelan River Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Chelan River Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Okanogan River Forecast} set dataset "$mgr.Okanogan River Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Okanogan River Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Chief Joseph Outflow Forecast} set dataset "$mgr.Chief Joseph Outflow Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {CHJ Outflow Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Grand Coulee Request Forecast} set dataset "$mgr.Grand Coulee Request Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {GCL Request Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Chief Joseph Request Forecast} set dataset "$mgr.Chief Joseph Request Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {CHJ Request Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {NonFederal Request Forecast} set dataset "$mgr.NonFederal Request Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {NonFed Request Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Grand Coulee TDG Forecast} set dataset "$mgr.Grand Coulee TDG Forecast" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 1 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {GCL TDG Forebay Forecast} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC Forecast Error Constraint Satisfaction Outputs} set dataset "$mgr.MidC Forecast Error Constraint Satisfaction Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {ConstraintSatisfactionWithError} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC No Forecast Error Constraint Satisfaction Outputs} set dataset "$mgr.MidC No Forecast Error Constraint Satisfaction Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {ConstraintSatisfactionNoError} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC Forecast Error Spill Outputs} set dataset "$mgr.MidC Forecast Error Spill Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Spill With Error} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC No Forecast Error Spill Outputs} set dataset "$mgr.MidC No Forecast Error Spill Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Spill No Error} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC Forecast Error Energy In Storage Outputs} set dataset "$mgr.MidC Forecast Error Energy In Storage Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Energy In Storage With Error} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC No Forecast Error Energy In Storage Outputs} set dataset "$mgr.MidC No Forecast Error Energy In Storage Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Energy In Storage No Error} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC Forecast Error Releases and Power Outputs} set dataset "$mgr.MidC Forecast Error Releases and Power Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Releases and Power With Error} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC No Forecast Error Releases and Power Outputs} set dataset "$mgr.MidC No Forecast Error Releases and Power Outputs" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Outputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Releases and Power No Error} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {Actual Requests} set dataset "$mgr.Actual Requests" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Observed Requests} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {MidC Initial Estimated Outflows} set dataset "$mgr.MidC Initial Estimated Outflows" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/MidC Wind Modeling Inputs.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {Initial Estimated Outflows} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {DSS} {Dataset 0} set dataset "$mgr.Dataset 0" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" file {} "$dataset" parts {} {} {} {} {} {} "$dataset" resolve "$mgr" {Excel} {Dataset 1} set dataset "$mgr.Dataset 1" "$dataset" nameMap {} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 0 0 0 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" {Excel} {ExportInputs2013} set dataset "$mgr.ExportInputs2013" "$dataset" nameMap {MidCImprovements2013} "$dataset" missVal {NNAN} 0 "$dataset" units {PREF_DB} 0 "$dataset" rwto 0 60 "$dataset" workbook {${MIDC_RIVERWARE}/Mid-C Input.xlsx} "$dataset" mappingType {HEADERS} "$dataset" configType {SERIES} "$dataset" sameSheet 1 {} "$dataset" rangeOffset 0 0 0 "$dataset" headerOffset 1 0 1 "$dataset" headerType {TIME-SLOT-RUN} "$dataset" runNameType {SINGLE} "$dataset" singleRunName {2013} "$dataset" commonRunNames {} "$dataset" beginTimeFlag 0 "$dataset" exportUnitFlag 0 "$mgr" end # Section: DMI (part two) set mgr "$ws.dmiMgr" "$mgr" format 3 "$mgr" locked 0 "$mgr" showProgDlg 0 "$mgr" showStatDlg 0 "$mgr" dbdmi {MidC Policy Test Input} set dmi "$mgr.dbdmi.MidC Policy Test Input" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Tailwater Elevation" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_Slot "Priest Rapids Constraints.CHJ Forecast Outflow" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep + 48 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.CJAD Input Prior to Run Period" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Revised Request As Flow" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Initial Uncoordinated Request" \ RootSel_Slot "Grand Coulee Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Accumulated Exchange" \ RootSel_Slot "Grand Coulee Constraints.Accumulated Exchange" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Crab Creek" \ RootSel_SimObj "Entiat River" \ RootSel_SimObj "Methow River" \ RootSel_SimObj "Okanogan River" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Crab Creek.Inflow" \ RootSel_Slot "Entiat River.Inflow" \ RootSel_Slot "Methow River.Inflow" \ RootSel_Slot "Okanogan River.Inflow" \ RootSel_Slot "Wenatchee River.Inflow" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Outflow" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {Start Timestep - 48 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Power" \ RootSel_Slot "Grand Coulee.Power" \ RootSel_Slot "Priest Rapids.Power" \ RootSel_Slot "Rock Island.Power" \ RootSel_Slot "Rocky Reach.Power" \ RootSel_Slot "Wanapum.Power" \ RootSel_Slot "Wells.Power" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Anticipated Storage" \ RootSel_Slot "Grand Coulee.Anticipated Storage" \ RootSel_Slot "Priest Rapids.Anticipated Storage" \ RootSel_Slot "Rock Island.Anticipated Storage" \ RootSel_Slot "Rocky Reach.Anticipated Storage" \ RootSel_Slot "Wanapum.Anticipated Storage" \ RootSel_Slot "Wells.Anticipated Storage" \ RootSel_End \ } {Start Timestep - 6 Timesteps} {Start Timestep - 2 Timesteps} {} 1 "$dmi" resolve "$mgr" dbdmi {MidC Sim Test Output} set dmi "$mgr.dbdmi.MidC Sim Test Output" "$dmi" type {Output} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Turbine Release" \ RootSel_Slot "Grand Coulee.Turbine Release" \ RootSel_Slot "Priest Rapids.Turbine Release" \ RootSel_Slot "Rock Island.Turbine Release" \ RootSel_Slot "Rocky Reach.Turbine Release" \ RootSel_Slot "Wanapum.Turbine Release" \ RootSel_Slot "Wells.Turbine Release" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Energy" \ RootSel_Slot "Grand Coulee.Energy" \ RootSel_Slot "Priest Rapids.Energy" \ RootSel_Slot "Rock Island.Energy" \ RootSel_Slot "Rocky Reach.Energy" \ RootSel_Slot "Wanapum.Energy" \ RootSel_Slot "Wells.Energy" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {} 1 "$dmi" resolve "$mgr" dbdmi {MidC Sim Test Input} set dmi "$mgr.dbdmi.MidC Sim Test Input" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rock Island" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Rocky Reach" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_End \ } {Start Timestep - 2 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Rock Island.Bypass" \ RootSel_Slot "Rocky Reach.Bypass" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Turbine Release" \ RootSel_Slot "Grand Coulee.Turbine Release" \ RootSel_Slot "Priest Rapids.Turbine Release" \ RootSel_Slot "Rocky Reach.Turbine Release" \ RootSel_Slot "Wanapum.Turbine Release" \ RootSel_Slot "Wells.Turbine Release" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Outflow" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {Start Timestep - 2 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" resolve "$mgr" dbdmi {MidC Opt Test Input} set dmi "$mgr.dbdmi.MidC Opt Test Input" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Outflow" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {Start Timestep - 2 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_SimObj "Wells Constraints" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_SimObj "Wells Constraints" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wells" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {} 1 "$dmi" resolve "$mgr" dbdmi {MidC Input Excel} set dmi "$mgr.dbdmi.MidC Input Excel" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_Slot "Priest Rapids Constraints.CHJ Forecast Outflow" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep + 48 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.CJAD Input Prior to Run Period" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Tailwater Elevation" \ RootSel_End \ } {Start Timestep - 120 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_End \ } {Start Timestep - 168 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Requests" \ RootSel_Slot "Requests.Total Nonfed Request" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep + 24 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Accumulated Exchange" \ RootSel_Slot "Grand Coulee Constraints.Accumulated Exchange" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Federal Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Bias Negative Limit" \ RootSel_Slot "Federal Constraints.Bias Negative Limit" \ RootSel_Slot "Grand Coulee Constraints.Bias Negative Limit" \ RootSel_Slot "Chief Joseph Constraints.Bias Positive Limit" \ RootSel_Slot "Federal Constraints.Bias Positive Limit" \ RootSel_Slot "Grand Coulee Constraints.Bias Positive Limit" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Chelan River" \ RootSel_SimObj "Crab Creek" \ RootSel_SimObj "Entiat River" \ RootSel_SimObj "Methow River" \ RootSel_SimObj "Okanogan River" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Chelan River.Inflow" \ RootSel_Slot "Crab Creek.Inflow" \ RootSel_Slot "Entiat River.Inflow" \ RootSel_Slot "Methow River.Inflow" \ RootSel_Slot "Okanogan River.Inflow" \ RootSel_Slot "Wenatchee River.Inflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Storage" \ RootSel_Slot "Grand Coulee.Storage" \ RootSel_Slot "Priest Rapids.Storage" \ RootSel_Slot "Rock Island.Storage" \ RootSel_Slot "Rocky Reach.Storage" \ RootSel_Slot "Wanapum.Storage" \ RootSel_Slot "Wells.Storage" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Start Timestep - 2 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Outflow" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_SimObj "Wells Constraints" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Generation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Generation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Generation" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Generation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Generation" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Generation" \ RootSel_Slot "Wells Constraints.Special Operations Max Generation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Outflow" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Outflow" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Outflow" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Outflow" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Outflow" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Outflow" \ RootSel_Slot "Wells Constraints.Special Operations Max Outflow" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Wells Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Wells Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Generation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Generation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Generation" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Generation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Generation" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Generation" \ RootSel_Slot "Wells Constraints.Special Operations Min Generation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Outflow" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Outflow" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Outflow" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Outflow" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Outflow" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Outflow" \ RootSel_Slot "Wells Constraints.Special Operations Min Outflow" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Wells Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Wells Constraints.Special Operations Min Tailwater Elev" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {MidC Input Excel} 1 "$dmi" resolve "$mgr" dbdmi {MidC Output Excel} set dmi "$mgr.dbdmi.MidC Output Excel" "$dmi" type {Output} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {MidC Output Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Turbine Release" \ RootSel_Slot "Grand Coulee.Turbine Release" \ RootSel_Slot "Priest Rapids.Turbine Release" \ RootSel_Slot "Rock Island.Turbine Release" \ RootSel_Slot "Rocky Reach.Turbine Release" \ RootSel_Slot "Wanapum.Turbine Release" \ RootSel_Slot "Wells.Turbine Release" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {MidC Output Excel} 1 "$dmi" resolve "$mgr" dbdmi {MidC Forecasts} set dmi "$mgr.dbdmi.MidC Forecasts" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {Grand Coulee Inflow Forecast} 1 {Chief Joseph Outflow Forecast} 1 {Grand Coulee Request Forecast} 1 {Chief Joseph Request Forecast} 1 {NonFederal Request Forecast} 1 {Okanogan River Forecast} 1 {Methow River Forecast} 1 {Chelan River Forecast} 1 {Entiat River Forecast} 1 {Wenatchee River Forecast} 1 {Crab Creek Forecast} 1 {Grand Coulee TDG Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Grand Coulee Inflow Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_Slot "Priest Rapids Constraints.CHJ Forecast Outflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep + 48 Timesteps} {Chief Joseph Outflow Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Grand Coulee Request Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Chief Joseph Request Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Requests" \ RootSel_Slot "Requests.Total Nonfed Request" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {NonFederal Request Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Okanogan River" \ RootSel_Slot "Okanogan River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Okanogan River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Methow River" \ RootSel_Slot "Methow River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Methow River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Chelan River" \ RootSel_Slot "Chelan River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Chelan River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Entiat River" \ RootSel_Slot "Entiat River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Entiat River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Wenatchee River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Wenatchee River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Crab Creek" \ RootSel_Slot "Crab Creek.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Crab Creek Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Grand Coulee TDG Forecast} 1 "$dmi" resolve "$mgr" dbdmi {MidC No Forecast Error Outputs} set dmi "$mgr.dbdmi.MidC No Forecast Error Outputs" "$dmi" type {Output} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {MidC No Forecast Error Constraint Satisfaction Outputs} 1 {MidC No Forecast Error Energy In Storage Outputs} 1 {MidC No Forecast Error Releases and Power Outputs} 1 {MidC No Forecast Error Spill Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Spill Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_SimObj "Wells Constraints" \ RootSel_Slot "Chief Joseph Constraints.Spill As Energy" \ RootSel_Slot "Grand Coulee Constraints.Spill As Energy" \ RootSel_Slot "Priest Rapids Constraints.Spill As Energy" \ RootSel_Slot "Rock Island Constraints.Spill As Energy" \ RootSel_Slot "Rocky Reach Constraints.Spill As Energy" \ RootSel_Slot "Wanapum Constraints.Spill As Energy" \ RootSel_Slot "Wells Constraints.Spill As Energy" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Spill Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Turbine Release" \ RootSel_Slot "Grand Coulee.Turbine Release" \ RootSel_Slot "Priest Rapids.Turbine Release" \ RootSel_Slot "Rock Island.Turbine Release" \ RootSel_Slot "Rocky Reach.Turbine Release" \ RootSel_Slot "Wanapum.Turbine Release" \ RootSel_Slot "Wells.Turbine Release" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Releases and Power Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Power" \ RootSel_Slot "Grand Coulee.Power" \ RootSel_Slot "Priest Rapids.Power" \ RootSel_Slot "Rock Island.Power" \ RootSel_Slot "Rocky Reach.Power" \ RootSel_Slot "Wanapum.Power" \ RootSel_Slot "Wells.Power" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Releases and Power Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Constraint Evaluation" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Constraint Satisfaction Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_SimObj "Wells Constraints" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Energy In Storage Outputs} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Requests" \ RootSel_End \ } {Start Timestep} {Start Timestep + 5 Timesteps} {MidC No Forecast Error Energy In Storage Outputs} 1 "$dmi" resolve "$mgr" dbdmi {MidC Actual Requests} set dmi "$mgr.dbdmi.MidC Actual Requests" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {Grand Coulee Inflow Forecast} 1 {Chief Joseph Outflow Forecast} 1 {Okanogan River Forecast} 1 {Methow River Forecast} 1 {Chelan River Forecast} 1 {Entiat River Forecast} 1 {Wenatchee River Forecast} 1 {Crab Creek Forecast} 1 {Grand Coulee TDG Forecast} 1 {Actual Requests} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Grand Coulee Inflow Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_Slot "Priest Rapids Constraints.CHJ Forecast Outflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep + 48 Timesteps} {Chief Joseph Outflow Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Actual Requests} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Actual Requests} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Requests" \ RootSel_Slot "Requests.Total Nonfed Request" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Actual Requests} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Okanogan River" \ RootSel_Slot "Okanogan River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Okanogan River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Methow River" \ RootSel_Slot "Methow River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Methow River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Chelan River" \ RootSel_Slot "Chelan River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Chelan River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Entiat River" \ RootSel_Slot "Entiat River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Entiat River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Wenatchee River.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Wenatchee River Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Crab Creek" \ RootSel_Slot "Crab Creek.Inflow" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Crab Creek Forecast} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {Grand Coulee TDG Forecast} 1 "$dmi" resolve "$mgr" prog {Riverware SVC Inputs} set dmi "$mgr.prog.Riverware SVC Inputs" "$dmi" type {Input} "$dmi" confirmWarnings 0 "$dmi" recInv 0 "$dmi" ctlFile {d:\riverwareconfig\MIDC_DMI_Control.txt} "$dmi" execFile {} "$dmi" allowSpaces 0 "$dmi" limitOutRunRange 0 "$dmi" newlineOpt native "$mgr" prog {Riverware SVC Outputs} set dmi "$mgr.prog.Riverware SVC Outputs" "$dmi" type {Output} "$dmi" confirmWarnings 0 "$dmi" recInv 0 "$dmi" ctlFile {d:\riverwareconfig\MidC_Output_DMIs.txt} "$dmi" execFile {} "$dmi" allowSpaces 0 "$dmi" limitOutRunRange 0 "$dmi" newlineOpt native "$mgr" dbdmi {ExportsFromModelInput2013} set dmi "$mgr.dbdmi.ExportsFromModelInput2013" "$dmi" type {Output} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Inflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_Slot "Priest Rapids Constraints.CHJ Forecast Outflow" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep + 48 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "Grand Coulee.Pool Elevation" \ RootSel_UseUserLabel true \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Grand Coulee Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.CJAD Input Prior to Run Period" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_Slot "Chief Joseph Constraints.Initial Uncoordinated Request" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Tailwater Elevation" \ RootSel_End \ } {Start Timestep - 120 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_End \ } {Start Timestep - 168 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Requests" \ RootSel_Slot "Requests.Total Nonfed Request" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Grand Coulee" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Accumulated Exchange" \ RootSel_Slot "Grand Coulee Constraints.Accumulated Exchange" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Federal Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Bias Negative Limit" \ RootSel_Slot "Federal Constraints.Bias Negative Limit" \ RootSel_Slot "Grand Coulee Constraints.Bias Negative Limit" \ RootSel_Slot "Chief Joseph Constraints.Bias Positive Limit" \ RootSel_Slot "Federal Constraints.Bias Positive Limit" \ RootSel_Slot "Grand Coulee Constraints.Bias Positive Limit" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reach" \ RootSel_SimObj "Chelan River" \ RootSel_SimObj "Crab Creek" \ RootSel_SimObj "Entiat River" \ RootSel_SimObj "Methow River" \ RootSel_SimObj "Okanogan River" \ RootSel_SimObj "Wenatchee River" \ RootSel_Slot "Chelan River.Inflow" \ RootSel_Slot "Crab Creek.Inflow" \ RootSel_Slot "Entiat River.Inflow" \ RootSel_Slot "Methow River.Inflow" \ RootSel_Slot "Okanogan River.Inflow" \ RootSel_Slot "Wenatchee River.Inflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Regulated Spill" \ RootSel_Slot "Grand Coulee.Regulated Spill" \ RootSel_Slot "Priest Rapids.Regulated Spill" \ RootSel_Slot "Rock Island.Regulated Spill" \ RootSel_Slot "Rocky Reach.Regulated Spill" \ RootSel_Slot "Wanapum.Regulated Spill" \ RootSel_Slot "Wells.Regulated Spill" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Storage" \ RootSel_Slot "Grand Coulee.Storage" \ RootSel_Slot "Priest Rapids.Storage" \ RootSel_Slot "Rock Island.Storage" \ RootSel_Slot "Rocky Reach.Storage" \ RootSel_Slot "Wanapum.Storage" \ RootSel_Slot "Wells.Storage" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Start Timestep - 2 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Pool Elevation" \ RootSel_Slot "Grand Coulee.Pool Elevation" \ RootSel_Slot "Priest Rapids.Pool Elevation" \ RootSel_Slot "Rock Island.Pool Elevation" \ RootSel_Slot "Rocky Reach.Pool Elevation" \ RootSel_Slot "Wanapum.Pool Elevation" \ RootSel_Slot "Wells.Pool Elevation" \ RootSel_End \ } {Start Timestep - 1 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "Reservoir" \ RootSel_SimObjClass "PowerReservoir" \ RootSel_SimObjClass "LevelPowerReservoir" \ RootSel_SimObj "Chief Joseph" \ RootSel_SimObj "Grand Coulee" \ RootSel_SimObj "Priest Rapids" \ RootSel_SimObj "Rock Island" \ RootSel_SimObj "Rocky Reach" \ RootSel_SimObj "Wanapum" \ RootSel_SimObj "Wells" \ RootSel_Slot "Chief Joseph.Outflow" \ RootSel_Slot "Grand Coulee.Outflow" \ RootSel_Slot "Priest Rapids.Outflow" \ RootSel_Slot "Rock Island.Outflow" \ RootSel_Slot "Rocky Reach.Outflow" \ RootSel_Slot "Wanapum.Outflow" \ RootSel_Slot "Wells.Outflow" \ RootSel_End \ } {Start Timestep - 96 Timesteps} {Start Timestep - 1 Timesteps} {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_SimObj "Priest Rapids Constraints" \ RootSel_SimObj "Rock Island Constraints" \ RootSel_SimObj "Rocky Reach Constraints" \ RootSel_SimObj "Wanapum Constraints" \ RootSel_SimObj "Wells Constraints" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Generation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Generation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Generation" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Generation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Generation" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Generation" \ RootSel_Slot "Wells Constraints.Special Operations Max Generation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Outflow" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Outflow" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Outflow" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Outflow" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Outflow" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Outflow" \ RootSel_Slot "Wells Constraints.Special Operations Max Outflow" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Wells Constraints.Special Operations Max Pool Elevation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Rock Island Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Wanapum Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Wells Constraints.Special Operations Max Tailwater Elev" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Generation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Generation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Generation" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Generation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Generation" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Generation" \ RootSel_Slot "Wells Constraints.Special Operations Min Generation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Outflow" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Outflow" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Outflow" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Outflow" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Outflow" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Outflow" \ RootSel_Slot "Wells Constraints.Special Operations Min Outflow" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Wells Constraints.Special Operations Min Pool Elevation" \ RootSel_Slot "Chief Joseph Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Grand Coulee Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Priest Rapids Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Rock Island Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Rocky Reach Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Wanapum Constraints.Special Operations Min Tailwater Elev" \ RootSel_Slot "Wells Constraints.Special Operations Min Tailwater Elev" \ RootSel_End \ } {Start Timestep} {Finish Timestep} {MidC Input Excel} 1 "$dmi" resolve "$mgr" dbdmi {Bias Input} set dmi "$mgr.dbdmi.Bias Input" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" userParam "$dmi" datasets2 {MidC Input Excel} 1 "$dmi" slot2 {\ RootSelection Version1 \ RootSel_Name "" \ RootSel_UserLabel "" \ RootSel_UseUserLabel false \ RootSel_RootType ROOT_SUBCLASS_SLOT \ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \ RootSel_SelMode SELMODE_SLOT_PHYSICAL \ RootSel_SubBasin_WildAllowed false \ RootSel_SubBasin_Wildcarded false \ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \ RootSel_SimObj_WildAllowed true \ RootSel_SimObj_Wildcarded false \ RootSel_SimObj_ExclAggObjElems false \ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \ RootSel_Exch_WildAllowed false \ RootSel_Exch_Wildcarded false \ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \ RootSel_Acct_WildAllowed false \ RootSel_Acct_Wildcarded false \ RootSel_InclStorageAccts true \ RootSel_InclDiversionAccts true \ RootSel_InclInstreamFlowAccts true \ RootSel_InclPassThroughAccts true \ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \ RootSel_Pback_WildAllowed false \ RootSel_Pback_Wildcarded false \ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Supply_WildAllowed false \ RootSel_Supply_Wildcarded false \ RootSel_Supply_ShowFromAccts true \ RootSel_Supply_ShowToAccts false \ RootSel_ShowSupplies_InOut true \ RootSel_ShowSupplies_DivRet true \ RootSel_ShowSupplies_Trans true \ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \ RootSel_Slot_WildAllowed true \ RootSel_Slot_Wildcarded false \ RootSel_SlotTypeBits_InclMask 0 \ RootSel_SlotTypeBits_ExclMask 0 \ RootSel_AllowAggSeriesCols true \ RootSel_AllowTableSeriesCols true \ RootSel_AllowAggTableCols false \ RootSel_ShowAggSeriesCols false \ RootSel_ShowTableSeriesCols false \ RootSel_ShowAggTableCols false \ RootSel_RequiresSlotColRefs false \ RootSel_SimObjClass "DataObj" \ RootSel_SimObj "Chief Joseph Constraints" \ RootSel_SimObj "Grand Coulee Constraints" \ RootSel_Slot "Chief Joseph Constraints.Bias" \ RootSel_Slot "Grand Coulee Constraints.Bias" \ RootSel_End \ } {Start Timestep - 24 Timesteps} {Finish Timestep} {MidC Input Excel} 1 "$dmi" resolve "$mgr" prog {Mid-C Data Inputs} set dmi "$mgr.prog.Mid-C Data Inputs" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" ctlFile {C:/Users/jtaylor1/Desktop/Riverware/RiverWare Transfer Folder/MIDC_DMI_Control.txt} "$dmi" execFile {} "$dmi" allowSpaces 0 "$dmi" limitOutRunRange 0 "$dmi" newlineOpt native "$mgr" prog {MidC Test Inputs} set dmi "$mgr.prog.MidC Test Inputs" "$dmi" type {Input} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" ctlFile {D:/MidC/Central/MidC_Central_Models/MidC_InputControlFile.txt} "$dmi" execFile {} "$dmi" allowSpaces 0 "$dmi" limitOutRunRange 0 "$dmi" newlineOpt native "$mgr" prog {MidC Test Export Input Values} set dmi "$mgr.prog.MidC Test Export Input Values" "$dmi" type {Output} "$dmi" confirmWarnings 1 "$dmi" recInv 0 "$dmi" ctlFile {D:/MidC/Central/MidC_Central_Models/MidC_InputControlFile.txt} "$dmi" execFile {} "$dmi" allowSpaces 0 "$dmi" limitOutRunRange 0 "$dmi" newlineOpt native "$mgr" end # Section: Diagnostic Object Section {Diagnostic Settings} cwDiag diagEnabled 1 cwDiag diagFile 0 {${MIDC_RIVERWARE}/Mid-ColumbiaDiagnostics.txt} cwDiag toWindow 1 cwDiag filterByLevel 0 2 cwDiag filterByRegex 0 {} Diag optInfo 1 Diag Advanced 0 Diag Context {Simulation} 1 {Object} Diag Context {Simulation} 2 {Slot} Diag Group {Simulation} {Init. Rules Print Statements} Diag Context {Rulebased Simulation} 1 {Object} Diag Context {Rulebased Simulation} 2 {Slot} Diag Context {Rulebased Simulation} 8 {Rule} Diag Context {Optimization} 32 {Goal} # Section: Global Functions Set Manager Section {Gobal Functions Set Manager} $ws.GlobalRplSetMgr saveSetsWithModel $ws.GlobalRplSetMgr globalFunctionSet {RULESET\ NAME "MidC_GlobalFunctions";\ AGENDA_ORDER ASCENDING;\ DESCRIPTION "";\ PRECISION 2;\ IS_GLOBAL TRUE;\ NOTES "";\ BEGIN\ \ UTILITY_GROUP "Utility Group";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "ModelVersion" ( )\ RETURN_TYPE STRING;\ SCALE_UNITS "";\ DESCRIPTION "This function contains the model version number so that it can be reported in a diagnostic message from the Report Model Version initialization rule. Whenever the model is updated, this model version number should be updated by typing in the new version as a string with double quotes.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ "v3.0.0_2017.04.28" COMMENTED_BY "Type in the version number as a string with double quotes";\ \ END;\ \ FUNCTION "FourProjectCoordination" ( )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ NOT IsNaN $ "Nonfederal Data.Four Project Coordination" [] AND $ "Nonfederal Data.Four Project Coordination" [] == 1.00000000;\ \ END;\ \ FUNCTION "SlotFromDataObject" ( OBJECT res, STRING slotName )\ RETURN_TYPE SLOT;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: SLOT - the specified slot from the Constraints Data Object corresponding to the reservoir
    Called in:
    - SlotValueFromDataObject function
    - ScalarValueFromDataObject function
    - DataFromDataObjectTable function

    This function makes it possible reference slots on a reservoir's Data Object by using the reservoir name, simplifying the lists used in constraints that apply to multiple reservoirs. The function concatenates the word "Constraints" onto the object name in the Object.Slot pair. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "GetObject"( ( STRINGIFY res ) CONCAT " Constraints" ) & slotName;\ \ END;\ \ FUNCTION "SlotValueFromDataObject" ( OBJECT res, STRING slotName, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the slot name being referenced
    DATETIME - the timestep being referenced

    Returns: NUMERIC - the value of the specified slot on a reservoir's Data Object (Reservoir Constraints) at the specified timestep
    Called in:
    - Any goal or function referencing a value from a Reservoir Constraints Data Object

    This function makes it possible reference values from slots on a reservoir's Data Object by using the reservoir name (instead of the Data Object name), simplifying the lists used in constraints that apply to multiple reservoirs. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "SlotFromDataObject"( res, slotName ) [timestep];\ \ END;\ \ FUNCTION "ScalarValueFromDataObject" ( OBJECT res, STRING slotName )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the slot name being referenced

    Returns: NUMERIC - the value of the specified slot on a reservoir's Data Object (Reservoir Constraints)
    Called in:
    - Any goal or function referencing a scalar slot value from a Reservoir Constraints Data Object

    This function makes it possible reference values from slots on a reservoir's Data Object by using the reservoir name (instead of the Data Object name), simplifying the lists used in constraints that apply to multiple reservoirs.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "SlotFromDataObject"( res, slotName ) [];\ \ END;\ \ FUNCTION "RoundToIncrement" ( NUMERIC val, NUMERIC increment )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( ( "Ceiling"( val, increment ) - val ) < val - "Floor"( val, increment ) )\ THEN\ "Ceiling"( val, increment ) COMMENTED_BY "We are rounding up."\ ELSE\ "Floor"( val, increment ) COMMENTED_BY "We are rounding down."\ ENDIF;\ \ END;\ \ FUNCTION "SumAggSeriesRow" ( SLOT aggSeries, NUMERIC numCol, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( NUMERIC colNum IN { 0.00000000 , numCol } ) WITH NUMERIC total = 0.00000000 DO\ "Sum"( "GetSlotValsByCol"( aggSeries, timestep, timestep, colNum ) )\ ENDFOR;\ \ END;\ \ FUNCTION "LastElementInListNumeric" ( LIST list )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ GET @INDEX ( LENGTH list ) - 1.00000000 FROM list;\ \ END;\ \ FUNCTION "DateFromDataObjectTable" ( OBJECT res, STRING slotName, NUMERIC row, NUMERIC column )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the slot name being referenced, a table slot with dates for the beginning and end of a specified period
    NUMERIC - the row in the table of the date being referenced
    NUMERIC - the column in the table of the date being referenced

    Returns: NUMERIC - the Numeric value corresponding to a Datetime value entered in the table
    Called in:
    - ActiveSeason and IsActiveSeason functions

    This function simplifies constraints that apply to a specific time period or season (such as Fish Spill constraints). The ActiveSeason function calls this function when checking the beginning and end dates of the specified season. This function makes it possible to reference dates from table slots on a reservoir's Data Object by using the reservoir name (instead of the Data Object name), simplifying the lists used in constraints that apply to multiple reservoirs. The function calls the SlotFromDataObject function to access the appropriate slot. The function then looks in the table cell specified by the row and column arguments to obtain the value. The tables referenced by this function contain two cells, one column with two rows. One contains the start date and one contains the end date for the season or period. The [row, column] arguments will therefore be either [0, 0] or [1, 0]. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "SlotFromDataObject"( res, slotName ) [row, column];\ \ END;\ \ FUNCTION "ResNameFromDataObj" ( OBJECT dataObj )\ RETURN_TYPE OBJECT;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the data object being referenced
    Returns: OBJECT - the corresponding reservoir Object
    Called in:
    - Expression slots that reference a slot from the corresponding reservoir

    This function makes it possible reference a reservoir from its data object, typically by using the ThisObject argument, when calling the function. This allows the same expression to be copied to the data objects for multiple reservoirs without having to modify the expression. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "GetObject"( GET @INDEX 0.00000000 FROM "Split"( STRINGIFY dataObj, " Con" ) );\ \ END;\ \ FUNCTION "NonFedReservoirs" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ IF ( "FourProjectCoordination"( ) )\ THEN\ "ObjectsFromAttributeValue"( "PUD", "Chelan" ) SET_UNION "ObjectsFromAttributeValue"( "PUD", "Grant" )\ ELSE\ "ObjectsFromAttributeValue"( "Fed or NonFed", "Nonfederal" )\ ENDIF;\ \ END;\ \ FUNCTION "FederalReservoirs" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ "ObjectsFromAttributeValue"( "Fed or NonFed", "Federal" );\ \ END;\ \ FUNCTION "EndOfDay" ( LIST timeRange )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: LIST of timesteps (either Start Timestep to Finish Timestep or a specified season)
    Returns: LIST - the timesteps from the argument list that are the 24:00 timestep of each day
    Called in:
    - Constraints and associated functions that are evaluated once per day and typically look back over the previous 24 hours.

    This function is called by constraints that are based on policies that require a daily value, such as a daily average or total flow (e.g. Chief Joseph Daily Release and Rocky Reach Fish Spill), or constraints that apply at midnight of each day (e.g. CJAD constraints). It is often called through another function in order to create a list of end of day timesteps during a specified season only. The function goes through all of the timesteps in the argument list and checks if the hour or the timestep equals 24:00:00. If it does, the timestep is added to the EndOfDay list. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME t IN timeRange ) WITH LIST dayEnds = { } DO\ IF ( t == @"24:00:00" )\ THEN\ APPEND t ONTO dayEnds\ ELSE\ dayEnds\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "IsEndOfDay" ( DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - a specified timestep
    Returns: BOOLEAN - True if the timestep is at 24:00 hours (midnight)
    Called in:
    - Constraints and associated functions that are evaluated once per day and typically look back over the previous 24 hours. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ timestep == @"24:00:00";\ \ END;\ \ FUNCTION "Noon" ( LIST timeRange )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: LIST of timesteps (either Start Timestep to Finish Timestep or a specified season)
    Returns: LIST - the timesteps from the argument list that are at 12:00 hours (noon)
    Called in:
    - Bias Curvature Limits constraint
    - Turbine Release Curvature Limits constraint

    This function is called by constraints that require a daily value (e.g. summed) from the previous noon to the current noon rather than the calendar day. The function goes through all of the timesteps in the argument list and checks if the hour or the timestep equals 12:00:00. If it does, the timestep is added to the Noon list. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN timeRange ) WITH LIST noonHours = { } DO\ IF ( timestep == @"12:00:00" )\ THEN\ APPEND timestep ONTO noonHours\ ELSE\ noonHours\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "OperationalSeasonList" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ { { % "Dates" , "Spawning Period" } , { % "Dates" , "PreHatch Period" } , { % "Dates" , "PostHatch Period" } , { % "Dates" , "Emergence Period" } , { % "Dates" , "Rearing Period" } , { % "Dates" , "CJAD Period" } , { % "Dates" , "CJAD II Period" } , { % "Wells Constraints" , "Summer Fish Spill Season" } , { % "Rocky Reach Constraints" , "Summer Fish Spill Season" } , { % "Rock Island Constraints" , "Spring Fish Spill Season" } , { % "Rock Island Constraints" , "Summer Fish Spill Season" } , { % "Wanapum Constraints" , "Summer Fish Spill Season" } , { % "Wanapum Constraints" , "Fall Fish Spill Season" } , { % "Priest Rapids Constraints" , "Summer Fish Spill Season" } , { % "Priest Rapids Constraints" , "Fall Fish Spill Season" } } COMMENTED_BY "Returns a list of operational sesaons in a specific order to match the Dates.Operational Season
    Dates slot

    {Object with operational period slot, Name of operational period}";\ \ END;\ \ FUNCTION "ActiveSeason" ( OBJECT res, STRING season )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the name of the season (e.g. Summer Fish Spill)

    Returns: LIST of timesteps in the run period that are within the specified season
    Called in:
    - Constraints (and their related functions) that are only active during specific seasons

    The purpose of this goal is to create a list of timesteps for which a constraint is applicable (the "Active Season") when the dates for the season are contained in a slot on a reservoir's Data Object (as opposed to the Dates Data Object). These are constraints that apply to an individual reservoir (e.g. Wells Goose Nesting) or that might apply over different dates for different reservoirs (e.g. Fish Spill constraints). For every timestep in the run period, this function first checks the Operations slot for the specified season to see if dates have been entered by calling the DateFromDataObjectTable function. If the Operations slot contains valid dates, the function then checks if each timestep in the run period falls within these dates. Each timestep that does is added to the ActiveSeason list. If the Operations slot does not contain dates (displays DT NaN), the dates from the corresponding Default slot is used. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST activeTimesteps = { } DO\ IF ( NOT IsNaN "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 0.00000000, 0.00000000 ) AND NOT IsNaN "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 1.00000000, 0.00000000 ) )\ THEN\ IF ( timestep >= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 0.00000000, 0.00000000 ) ) AND timestep <= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 1.00000000, 0.00000000 ) ) )\ THEN\ APPEND timestep ONTO activeTimesteps\ ELSE\ activeTimesteps\ ENDIF\ ELSE\ IF ( timestep >= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Default" ), 0.00000000, 0.00000000 ) ) AND timestep <= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Default" ), 1.00000000, 0.00000000 ) ) )\ THEN\ APPEND timestep ONTO activeTimesteps\ ELSE\ activeTimesteps\ ENDIF\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "IsActiveSeason" ( OBJECT res, STRING season, DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the name of the season (e.g. Summer Fish Spill Season)
    DATETIME - the specified timestep

    Returns: BOOLEAN - True if the argument timestep is contained within the dates of the specified season
    Called in:
    - Constraint Evaluation.Reservoir Fish Spill Deficiency expression slots
    - IsActiveSeasonEndOfDay function

    This function uses the same logic as the ActiveSeason function but instead of adding each timestep to a list of "Active Season" timesteps, it returns a value of TRUE if the timestep is within the specified season. In the Constraint Evaluation expression slots, the expression uses the value returned by this function to determine if the constraint satisfaction should be evaluated. The constraint satisfaction is only evaluated if this function returns TRUE. If the function returns FALSE, (the constraints for the specified season are not in effect), the slot value at that timestep is set to zero. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 0.00000000, 0.00000000 ) AND NOT IsNaN "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 1.00000000, 0.00000000 ) )\ THEN\ IF ( timestep >= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 0.00000000, 0.00000000 ) ) AND timestep <= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Operations" ), 1.00000000, 0.00000000 ) ) )\ THEN\ TRUE\ ELSE\ FALSE\ ENDIF\ ELSE\ IF ( timestep >= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Default" ), 0.00000000, 0.00000000 ) ) AND timestep <= "NumberToDate"( "DateFromDataObjectTable"( res, ( season CONCAT " Default" ), 1.00000000, 0.00000000 ) ) )\ THEN\ TRUE\ ELSE\ FALSE\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "ActiveSeasonEndOfDay" ( OBJECT res, STRING season )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the name of the season (e.g. Summer Fish Spill Season)

    Returns: LIST of timesteps in the run period that are within the specified season and end at hour 24:00:00
    Called in:
    - Constraints or expressions that are evaluated once per day and typically must look back over values from the previous 24 hours

    This function combines the EndOfDay and ActiveSeason functions to create a list of timesteps to evaluate a constraint that is based on a daily requirement (e.g. total daily Outflow) during a specified season. It is called when the dates for the season are contained in a slot on a reservoir's Data Object (as opposed to the Dates Data Object). ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "EndOfDay"( "ActiveSeason"( res, season ) );\ \ END;\ \ FUNCTION "IsActiveSeasonEndOfDay" ( OBJECT res, STRING season, DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    STRING - the name of the season (e.g. Summer Fish Spill Season)
    DATETIME - the specified timestep

    Returns: BOOLEAN - True if the argument timestep is contained within the dates of the specified season and ends at hour 24:00:00
    Called in:
    - Constraints or expressions that are evaluated once per day and typically must look back over values from the previous 24 hours

    This function combines the IsEndOfDay and IsActiveSeason functions and returns TRUE if both of these functions return TRUE. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "IsEndOfDay"( timestep ) AND "IsActiveSeason"( res, season, timestep );\ \ END;\ \ FUNCTION "ActiveSeasonFromDates" ( STRING season )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: STRING - the name of the season (e.g. Rearing Period)
    Returns: LIST of timesteps in the run period that are within the specified season
    Called in:
    - Constraints that are only active during specific seasons

    The purpose of this function is to create a list of timesteps for which a constraint is applicable (the "Active Season") when the dates for the season are contained in a slot on the Dates Data Object. These tend to be dates that apply to the entire system. For every timestep in the run period, this function first checks the Operations slot for the specified season to see if dates have been entered. If the Operations slot contains valid dates, the function then checks if each timestep in the run period falls within these dates. Each timestep that does is added to the Active Season list. If the Operations slot does not contain dates (displays DT NaN), the dates from the corresponding Default slot are used. This function is typically called by another function which contains the season name in the function title. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH SLOT opsSlot = % "Dates" & ( season CONCAT " Operations" ) DO\ WITH SLOT seasonSlot = IF ( NOT IsNaN opsSlot [0.00000000, 0.00000000] AND NOT IsNaN opsSlot [1.00000000, 0.00000000] )\ THEN\ opsSlot\ ELSE\ % "Dates" & ( season CONCAT " Default" )\ ENDIF DO\ FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST activeTimesteps = { } DO\ IF ( t >= "NumberToDate"( seasonSlot [0.00000000, 0.00000000] ) AND t <= "NumberToDate"( seasonSlot [1.00000000, 0.00000000] ) )\ THEN\ APPEND t ONTO activeTimesteps\ ELSE\ activeTimesteps\ ENDIF\ ENDFOR\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "ActiveSeasonEndOfDayFromDates" ( STRING season )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: STRING - the name of the season (e.g. Rearing Period)
    Returns: LIST of timesteps in the run period that are within the specified season and end at hour 24:00:00
    Called in:
    - RearingPeriod function
    - CJADIIPeriod function

    This function combines the EndOfDay and ActiveSeasonFromDates functions to create a list of timesteps to evaluate a constraint that is based on a daily requirement (e.g. total daily Outflow) during a specified season. It is called when the dates for the season are contained in a slot on the Dates Data Object. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "EndOfDay"( "ActiveSeasonFromDates"( season ) );\ \ END;\ \ FUNCTION "IsActiveSeasonFromDates" ( STRING season, DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: STRING - the name of the season
    DATETIME - the specified timestep
    Returns: BOOLEAN - True if the argument timestep is contained within the dates of the specified season
    Called in: -Priest Rapids Flow Bands goal: Check for final timestep
    -PLFDefaultCalc function
    -IsCJADIIPeriod function

    One use of this function is when a constraint must check if a specific timestep in the run is contained within the specified season. For example, Priest Rapids Flow Bands constraints evaluate for the final timestep of each day during the Rearing Period, but if the final timestep of the run period is not at midnight, it will not be added to the list of timesteps for which the function is evaluated, and the constraint would not apply for the final, incomplete day. Calling this function makes it possible to add the final timestep and thus cause the constraint to evaluate the final, incomplete day as well.

    The other use of this function is in expression slots that carry out a calculation during a specified season. In this case the function operates similarly to the ActiveSeasonFromDates function, but instead of creating a list of timesteps for which the expression should be evaluated, the expression makes a logical check at each timestep to determine whether or not it should be evaluated.

    The function first checks the Operations slot for the specified season on the Dates Data Object. This is a table slot with two cells, one column and two rows, for the beginning and end dates for the season. If the Operations slot contains valid dates, it then checks if the specified timestep is contained within these dates and returns TRUE if it is. If the Operations slot does not contain dates in both cells (displays DT NaN) the dates from the corresponding Default slot are used. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN % "Dates" & ( season CONCAT " Operations" ) [0.00000000, 0.00000000] AND NOT IsNaN % "Dates" & ( season CONCAT " Operations" ) [1.00000000, 0.00000000] )\ THEN\ timestep >= "NumberToDate"( % "Dates" & ( season CONCAT " Operations" ) [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( % "Dates" & ( season CONCAT " Operations" ) [1.00000000, 0.00000000] )\ ELSE\ timestep >= "NumberToDate"( % "Dates" & ( season CONCAT " Default" ) [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( % "Dates" & ( season CONCAT " Default" ) [1.00000000, 0.00000000] )\ ENDIF;\ \ END;\ \ FUNCTION "FinalDayTimesteps" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Returns: LIST of timesteps from hour 1:00:00 of the final day of the run period to the final timestep.
    Called in:
    - User Defined Variables policy group: Priest Rapids Daily High and Low Flows for Flow Bands goal

    This function is utilized by constraints and expressions that are evaluated once daily, at midnight, and must look back over the values from all timesteps of the previous day. When the run period does not end at midnight, a separate function is needed to generate the list of timesteps for the final, incomplete day. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "PreviousDate"( @"Finish Timestep", @"1:00:00" ) TO @"Finish Timestep";\ \ END;\ \ FUNCTION "DailyAverage" ( SLOT slot, DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the series slot being referenced to average
    DATETIME - the timestep at the end of the day to be averaged

    Returns: NUMERIC - the average value of the slot over the past 24 hours
    Called in:
    - Chief Joseph Daily Release goal
    - DailyAverageAggregate function
    - DailyAverageSideflowsDownstreamOfCHJ function
    - Flow Band Estimate functions

    This function calculates the average of a series slot over the previous day. It is called by constraints that are based on an average value over the previous 24 hours. The function sums the slot values from the previous 24 timesteps (including the argument timestep) then divides by 24. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN day - 23.00000000 "hr" TO day ) STAT_SUM\ slot [hour]\ ENDFOR / 24.00000000;\ \ END;\ \ FUNCTION "DailyAverageAggregate" ( LIST slots, DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    LIST of series slots
    DATETIME - the timestep at the end of the day to be averaged

    Returns: NUMERIC - the total of the average values of the specified slots over the past 24 hours
    Called in:
    - DailyAverageSideflowsDownstreamOfCHJ

    This function calls the DailyAverage function to calculate the average value over the previou 24 hours for each slot in the list. It then sums all of the average values from each slot to return a total average. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( SLOT slotName IN slots ) STAT_SUM\ "DailyAverage"( slotName, day )\ ENDFOR;\ \ END;\ \ FUNCTION "DailyTotalFlow" ( SLOT slotName, DATETIME dayEnd )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the series slot to be totaled with unit type of flow
    DATETIME - the timestep at the end of the day to be totaled

    Returns: NUMERIC - the total flow volume from the specified slot over the past 24 hours
    Called in:
    - Chief Joseph Accumulated Deficiency goals and associated functions
    - Fish Spill and Bypass goal: Rocky Reach and Rock Island Fish Spill constraints
    - DailyFishSpill function

    This function multiplies each hourly flow value (kcfs) by 1 hour to convert the flow a volume (kcfsh). It then sums these flow volumes over the previous 24 hours (including the argument timestep). It is called by constraints that are based on a total flow volume over the previous 24 hours. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN dayEnd - 23.00000000 "hr" TO dayEnd ) STAT_SUM\ slotName [timestep] * 1.00000000 "hr"\ ENDFOR;\ \ END;\ \ FUNCTION "CumulativeFlow" ( SLOT slotName, DATETIME start, DATETIME end )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the series slot to be totaled with unit type of flow
    DATETIME - the timestep at the start of the period to be totaled
    DATETIME - the timestep at the end of the period to be totaled

    Returns: NUMERIC - the total flow volume from the specified slot over the specified time range
    Called in:
    - CJAD goals and associated functions

    This function multiplies each hourly flow value (kcfs) by 1 hour to convert the flow a volume (kcfsh). It then sums these flow volumes over the time range specified by the start and end time arguments. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN start TO end ) STAT_SUM\ slotName [timestep] * 1.00000000 "hr"\ ENDFOR;\ \ END;\ \ FUNCTION "HourlyDecrease" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the series slot being referenced
    DATETIME - the timestep being referenced

    Returns: NUMERIC - the difference between the slot value at the previous timestep and the current timestep
    Called in:
    - Grand Coulee Tailwater constraints

    The purpose of this function is to simplify the reading of the Grand Coulee Taiwater Max Hourly Drawdown constraints. The value of this function must be less than or equal to the appropriate allowable hourly drawdown. It will be evaluated for every timestep in the run period. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ slot [timestep - 1.00000000 "hr"] - slot [timestep];\ \ END;\ \ FUNCTION "UpstreamReservoir" ( OBJECT res )\ RETURN_TYPE OBJECT;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: OBJECT - the reservoir directly upstream of the argument reservoir
    Called in: ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( res == % "Chief Joseph" )\ THEN\ % "Grand Coulee"\ ELSE\ IF ( res == % "Wells" )\ THEN\ % "Chief Joseph"\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ % "Wells"\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ % "Rocky Reach"\ ELSE\ IF ( res == % "Wanapum" )\ THEN\ % "Rock Island"\ ELSE\ IF ( res == % "Priest Rapids" )\ THEN\ % "Wanapum"\ ELSE\ STOP_RUN "There is no Reservoir object upstream of " CONCAT res\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "DownstreamReservoirs" ( OBJECT res )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: LIST - all Mid-Columbia reservoirs downstream of the argument reservoir, including the argument
    Called in:
    - CumulDownstreamPowerCoeffApprox function

    This function is utilized in calculating the Cumulative Power Coefficient, which is used to calculate the potential energy that can be generated by water as it passes through all of the projects in the system. The CumulDownstreamPowerCoeffApprox calls the DownstreamReservoir function to determine which Power Coefficients to include when calculating the cumulative for each project. The list returned by this function includes the reservoir that is the argument of the function and all downstream reservoirs. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( res == % "Grand Coulee" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" , % "Rocky Reach" , % "Wells" , % "Chief Joseph" , % "Grand Coulee" }\ ELSE\ IF ( res == % "Chief Joseph" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" , % "Rocky Reach" , % "Wells" , % "Chief Joseph" }\ ELSE\ IF ( res == % "Wells" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" , % "Rocky Reach" , % "Wells" }\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" , % "Rocky Reach" }\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" }\ ELSE\ IF ( res == % "Wanapum" )\ THEN\ { % "Priest Rapids" , % "Wanapum" }\ ELSE\ { % "Priest Rapids" }\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "UpstreamNonFedReservoirsInclusive" ( OBJECT res )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: LIST - all Mid-Columbia reservoirs downstream of the argument reservoir, including the argument
    Called in:
    - CumulDownstreamPowerCoeffApprox function

    This function is utilized in calculating the Cumulative Power Coefficient, which is used to calculate the potential energy that can be generated by water as it passes through all of the projects in the system. The CumulDownstreamPowerCoeffApprox calls the DownstreamReservoir function to determine which Power Coefficients to include when calculating the cumulative for each project. The list returned by this function includes the reservoir that is the argument of the function and all downstream reservoirs. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "FourProjectCoordination"( ) )\ THEN\ IF ( res == % "Rocky Reach" )\ THEN\ { % "Rocky Reach" }\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ { % "Rock Island" , % "Rocky Reach" }\ ELSE\ IF ( res == % "Wanapum" )\ THEN\ { % "Wanapum" , % "Rock Island" , % "Rocky Reach" }\ ELSE\ IF ( res == % "Priest Rapids" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" , % "Rocky Reach" }\ ELSE\ STOP_RUN "There are no Nonfederal reservoirs Upstream of " CONCAT res\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ELSE\ IF ( res == % "Wells" )\ THEN\ { % "Wells" }\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ { % "Rocky Reach" , % "Wells" }\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ { % "Rock Island" , % "Rocky Reach" , % "Wells" }\ ELSE\ IF ( res == % "Wanapum" )\ THEN\ { % "Wanapum" , % "Rock Island" , % "Rocky Reach" , % "Wells" }\ ELSE\ IF ( res == % "Priest Rapids" )\ THEN\ { % "Priest Rapids" , % "Wanapum" , % "Rock Island" , % "Rocky Reach" , % "Wells" }\ ELSE\ STOP_RUN "There are no Nonfederal reservoirs Upstream of " CONCAT res\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "DownstreamRes" ( OBJECT res )\ RETURN_TYPE OBJECT;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: OBJECT - the first reservoir downstream of the argument reservoir
    Called in:
    - EstimatedOperatingHead function
    - TWCalcForPostOptSim functions
    - Sequenced Nonfed Outflows goals";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( res == % "Grand Coulee" )\ THEN\ % "Chief Joseph"\ ELSE\ IF ( res == % "Chief Joseph" )\ THEN\ % "Wells"\ ELSE\ IF ( res == % "Wells" )\ THEN\ % "Rocky Reach"\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ % "Rock Island"\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ % "Wanapum"\ ELSE\ IF ( res == % "Wanapum" )\ THEN\ % "Priest Rapids"\ ELSE\ % "Priest Rapids"\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "UpstreamReach" ( OBJECT res )\ RETURN_TYPE OBJECT;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: OBJECT - the reservoir directly upstream of the argument reservoir
    Called in: ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( res == % "Chief Joseph" )\ THEN\ % "GCL to CHJ"\ ELSE\ IF ( res == % "Wells" )\ THEN\ % "CHJ to WEL"\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ % "WEL to RRH"\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ % "RRH to RIS"\ ELSE\ IF ( res == % "Wanapum" )\ THEN\ % "RIS to WAN"\ ELSE\ IF ( res == % "Priest Rapids" )\ THEN\ % "WAN to PRD"\ ELSE\ STOP_RUN "There is no Reach object upstream of " CONCAT res\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "DailyFishSpill" ( OBJECT res, STRING season, STRING DefaultOrManual, DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced (Rocky Reach or Rock Island)
    STRING - the Fish Spill season ("Spring" or "Summer")
    STRING - "Default" or "Manual" referring to which slot will be referenced to obtain the required Fish Spill Percent
    DATETIME - the timestep being evaluated, the final timestep of each day when the Fish Spill constraint is active

    Returns: NUMERIC - the required volume of water that must be spilled over each day in the Fish Spill Season as a percent of total Outflow
    Called in:
    - Fish Spill and Bypass goal: Rocky Reach Summer Fish Spill, Rock Island Spring Fish Spill and Rock Island Summer Fish Spill constraints
    - Constraint Evaluation:Rocky Reach and Rock Island Daily Fish Spill Deficiency expression slots

    This function is called by the Fish Spill constraints that require a percentage of total daily Outflow to be Spill (Rocky Reach and Rock Island). When this function is called, it first calls the ScalarValueFromDataObject function to obtain the Fish Spill Percent value from either the Fish Spill Percent Manual or Default slot for the corresponding constraint. The constraint will have checked for a value in the Manual slot and will tell the function in which slot to look. This percent is then multiplied by the total Outflow volume for the reservoir for the past day as calculated by the DailyTotalFlow function. This product is the required Spill volume for the day. Optimization determines how to distribute this total Spill volume over the day. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ScalarValueFromDataObject"( res, season CONCAT " Fish Spill Percent " CONCAT DefaultOrManual ) * "DailyTotalFlow"( res & "Outflow", day );\ \ END;\ \ FUNCTION "RecreationWeekend" ( OBJECT res )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: LIST of timesteps in the run period for which Recreation Weekend constraints apply
    Called in:
    - Recreation Weekend Pool Elevations goal

    This function calls the DateFromDataObjectTable function to first check if the Recreation Weekend slot on the specified reservoir's Data Object contains dates and times. If it does contain dates and times, it then checks if each timestep in the run period is contained within the beginning and end times for the Recreation Weekend. Each timestep that meets this condition is added to the list of timesteps for which the Recreation Weekend Pool Elevation constraint applies. If there are not both beginning and end dates and times in the Reservoir Constraints.Recreation Weekend slot or if the timestep is not within these times, the constraint will be ignored. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN "DateFromDataObjectTable"( res, "Recreation Weekend", 0.00000000, 0.00000000 ) AND NOT IsNaN "DateFromDataObjectTable"( res, "Recreation Weekend", 1.00000000, 0.00000000 ) )\ THEN\ FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST recWeekend = { } DO\ IF ( timestep >= "NumberToDate"( "DateFromDataObjectTable"( res, "Recreation Weekend", 0.00000000, 0.00000000 ) ) AND timestep <= "NumberToDate"( "DateFromDataObjectTable"( res, "Recreation Weekend", 1.00000000, 0.00000000 ) ) )\ THEN\ APPEND timestep ONTO recWeekend\ ELSE\ recWeekend\ ENDIF\ ENDFOR\ ELSE\ { }\ ENDIF;\ \ END;\ \ FUNCTION "DailyAverageSideflowsDownstreamOfCHJ" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at the end of the day to be averaged

    Returns: NUMERIC - the total of the average values of all tributary flows for the specified day
    Called in:
    - Chief Joseph Daily Release goal
    - Flow Band Estimate functions
    ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "DailyAverageAggregate"( { $ "Okanogan River.Inflow" , $ "Methow River.Inflow" , $ "Chelan River.Inflow" , $ "Entiat River.Inflow" , $ "Wenatchee River.Inflow" , $ "Crab Creek.Inflow" }, day );\ \ END;\ \ FUNCTION "EstimatedOperatingHead" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    DATETIME - the timestep at which to calculate the operating head

    Returns: NUMERIC - an estimate of the operating head for the project and timestep specified
    Called in:
    - PowerCoeffApproxDefault function

    This function is utilized in calculating the Power Coefficient Approximation for each reservoir. It uses the specified reservoir's Pool Elevation from the previous timestep and then subtracts an estimated Tailwater Elevation. The estimated Tailwater Elevation is calculated by the predefined RPL function TableInterpolation3D. This function interpolates from the reservoir's Stage Flow Tailwater Table based on a flow of 80 kcfs (a typical turbine release) and the Pool Elevation of the downstream reservoir at the previous timestep. This function typically (as called in the PowerCoeffApproxDefault function) calculates the Estimated Operating Head for the first timestep in the run based on the initial conditions (inputs) for the run. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Pool Elevation" [timestep - 1.00000000 "hr"] - "TableInterpolation3D"( res & "Stage Flow Tailwater Table", 0.00000000, 80.00000000 "kcfs", 1.00000000, "DownstreamRes"( res ) & "Pool Elevation" [timestep - 1.00000000 "hr"], 2.00000000, timestep );\ \ END;\ \ FUNCTION "PowerCoeffApproxDefault" ( OBJECT res )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir being referenced
    Returns: NUMERIC - the default approximate power per flow (MW/kcfs) value for the specified reservoir to be used for the run
    Called in:

    This function calculates the approximated Power Coefficient by calling the predefined RPL function TableInterpolation3D to calculate a power value (MW) and then dividing this by 80 kcfs (a typicall Turbine Release). The 3D interpolation uses the specified reservoir's Plant Power Table to calculate power based on the value returned from the EstimatedOperatingHead function at the Start Timestep and a Turbine Release of 80 kcfs. This value is not currently used in the model. It has been replacd by the Power Coeff Line Approx.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, "EstimatedOperatingHead"( res, @"Start Timestep" ), 1.00000000, 80.00000000 "kcfs", 2.00000000, @"Start Timestep" ) / 80.00000000 "kcfs";\ \ END;\ \ FUNCTION "PowerCoeffApprox" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    DATETIME - the timestep at which to calculate the Power Coefficient

    Returns: NUMERIC - the approximate power per flow (MW/kcfs) value for the specified reservoir at the specified timestep
    Called in:
    - Reservoir Constraints.Power Coefficient Approximation expression slots

    Each reservoir's Data Object contains an expression slot that calls this function at the beginning of the run. The Power Coefficient Approx can be set manually by entering a value in the Power Coefficient Approximation Manual. This function will first check that slot and will use any value there. If there is no value there, the default will be used, which is the Power Coeff Line Approx. The default Line Approx is equivalent to the slope of the Line Approximation in the reservoir's Power LP Param table slot.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN "SlotValueFromDataObject"( res, "Power Coefficient Approximation Manual", timestep ) )\ THEN\ "SlotValueFromDataObject"( res, "Power Coefficient Approximation Manual", timestep )\ ELSE\ "ScalarValueFromDataObject"( res, "Power Coeff Line Approx" )\ ENDIF;\ \ END;\ \ FUNCTION "SpillAsEnergy" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir being referenced
    DATETIME - the timestep at which to calculate Spill as Energy

    Returns: NUMERIC - the spill for the specified reservoir at the specified timestep converted to energy (MWH) by multiplying by the Power Coefficient Approximation
    Called in: Reservoir Constraints.Spill As Energy expression slots

    Each reservoir's Data Object contains an expression slot that calls this function at the end of the run. It starts with the Regulated Spill value for the specified timestep for that reservoir and multiplies it by the Power Coefficient Approximation (H/K) for that timestep to convert the flow into equivalent power based on that reservoir's typical power characteristics. This is then multiplied by one hour to convert the power (MW) into energy (MWH). The default Power Coefficient Approximation is equal to the Line Approximation in the reservoir's Power LP Param table.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Regulated Spill" [timestep] * "SlotValueFromDataObject"( res, "Power Coefficient Approximation", timestep ) * 1.00000000 "hr";\ \ END;\ \ FUNCTION "Lagged" ( OBJECT reachName, SLOT laggedSlot, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - a reach through which the specified slot value is routed (lagged)
    SLOT - the quantity that is being lagged, the series slot at the upstream end of the reach
    DATETIME - the timestep at which to calculate the lagged quantity (at the downstream end of the reach)

    Returns: NUMERIC - the specified slot's value from previous timesteps according to the LagTime from the specified reach
    Called in:
    - Federal Load Shifting goal
    - Chief Joseph Constraints.Elevation Corrected Release and Smoothed Storage expression slots
    - GrandCouleeLagged function

    This function is called to route a quantity through the specified reach using the reach's lag time. It is used in calculating the Federal Load Shift, which is based on Grand Coulee Bias at earlier timesteps. The extra flow arriving at Chief Joseph due to Grand Coulee Bias will be routed according to the Lag Time on the reach between the two reservoirs, and thus the Load Shift that corresponds to this increased flow must also be lagged accordingly. The funciton is also used in expression slots that calculate the Adjusted Federal Request to calculate the estimated flow into Chief Joseph from Grand Coulee after each step in the Adjustment.

    The function calculates the portion of the routed quantity that comes from each of two consecutive timesteps based on the whole timestep and partial timestep components of the Lag Time and adds them. This is the same calculation used in the Time Lag routing method used to route flows in a reach.
    ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ laggedSlot [t - "Floor"( reachName & "LagTime" [0.00000000, 0.00000000], 1.00000000 "hr" )] * ( ( "Ceiling"( reachName & "LagTime" [0.00000000, 0.00000000], 1.00000000 "hr" ) - reachName & "LagTime" [0.00000000, 0.00000000] ) / 1.00000000 "hr" ) + laggedSlot [t - "Ceiling"( reachName & "LagTime" [0.00000000, 0.00000000], 1.00000000 "hr" )] * ( ( reachName & "LagTime" [0.00000000, 0.00000000] - "Floor"( reachName & "LagTime" [0.00000000, 0.00000000], 1.00000000 "hr" ) ) / 1.00000000 "hr" );\ \ END;\ \ FUNCTION "RelativeDraft" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir at which to calculate the Relative Draft
    DATETIME - the timestep at which to calculate the Relative Draft

    Returns: NUMERIC - the reservoirs drafted volume as a percentage of the total storage volume
    Called in:
    - Equal Nonfed Draft goal
    - Reservoir Constraints.Percent Full expression slot

    This function calculates the drafted volume as the difference between the Storage at the License Max Elevation and the Storage at the specified timestep. This volume is then divided by the difference in the Storage at License Max and License Min Elevations (the max possible live storage volume). In this way, each reservoir's total draft volume is scaled by its total storage capacity. It is this Relative Draft that the Equal Nonfed Draft goal tries to set equal for Non-federal reservoirs.
    ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ) - res & "Storage" [timestep] ) / ( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ) - "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ) );\ \ END;\ \ FUNCTION "HoursInRun" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: NUMERIC - the number of hours in the run (no units)
    Called in:
    - Reservoir Constraints.Turbine Release Allowable Curvature Scalar expression slots

    This function calculates the number of seconds between the Start and Finsh times then divides by the number of seconds in a hour to return the number of hours in the run. In the Turbine Release Allowable Curvature Scalar slot, this value gets multiplied by the Turbine Release Curvature Parameter to give a total allowable curvature paramter value for the entire run. Note that this slot is not currently used in the model.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( "DateToNumber"( @"Finish Timestep" ) - "DateToNumber"( @"Start Timestep" - 1.00000000 "hr" ) ) / 3600.00000000;\ \ END;\ \ FUNCTION "DailyValues" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot from which to retrieve the values for the day
    DATETIME - a timestep within the day for which the values are returned (usually the last timestep of the day)

    Returns: LIST - all values from the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - DailyMax and DailyMin functions

    This function creates a list of all of the slot's values in the calendar day so that that the DailyMax or DailyMin can then find the Min/Max from the day.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN "PreviousDate"( timestep, @"1:00:00" ) TO "NextDate"( timestep, @"24:00:00" ) ) WITH LIST result = { } DO\ APPEND slotName [hour] ONTO result\ ENDFOR;\ \ END;\ \ FUNCTION "DailyValues0600" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot from which to retrieve the values for the day
    DATETIME - a timestep within the day for which the values are returned (usually the last timestep of the day)

    Returns: LIST - all values from the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - DailyMax and DailyMin functions

    This function creates a list of all of the slot's values in the calendar day so that that the DailyMax or DailyMin can then find the Min/Max from the day.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN "PreviousDate"( timestep, @"7:00:00" ) TO "NextDate"( timestep, @"6:00:00" ) ) WITH LIST result = { } DO\ APPEND slotName [hour] ONTO result\ ENDFOR;\ \ END;\ \ FUNCTION "DailyValuesRunPeriodOnly" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot from which to retrieve the values for the day
    DATETIME - a timestep within the day for which the values are returned

    Returns: LIST - all values from the specified series slot in the calendar day (1:00 to 24:00) that are within the run period
    Called in:
    - DailyMaxRunPeriodOnly and DailyMinRunPeriodOnly functions

    This function is similar to the DailyValues function but does not return any values for the day that are outside of the run period (Start Timestep to Finish Timestep).";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN "DateMax"( "PreviousDate"( timestep, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( "NextDate"( timestep, @"24:00:00" ), @"Finish Timestep" ) ) WITH LIST result = { } DO\ APPEND slotName [hour] ONTO result\ ENDFOR;\ \ END;\ \ FUNCTION "DailyMax" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - a timestep within the day for which the daily max is to be calculated

    Returns: NUMERIC - the largest value in the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - Requests.Nonfed Request Daily Max expression slot
    - Federal Constraints.Peak Valley expression slot

    This function takes the list of all values for the specified expression slot from the calendar day returned by the DailyValues function and finds the largest value. It is used to find Peak Request values for each day.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( "DailyValues"( slot, timestep ) );\ \ END;\ \ FUNCTION "DailyMax0600" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - a timestep within the day for which the daily max is to be calculated

    Returns: NUMERIC - the largest value in the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - Requests.Nonfed Request Daily Max expression slot
    - Federal Constraints.Peak Valley expression slot

    This function takes the list of all values for the specified expression slot from the calendar day returned by the DailyValues function and finds the largest value. It is used to find Peak Request values for each day.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( "DailyValues0600"( slot, timestep ) );\ \ END;\ \ FUNCTION "DailyMaxRunPeriodOnly" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - a timestep within the day for which the daily max is to be calculated

    Returns: NUMERIC - the largest value in the specified series slot in the calendar day (1:00 to 24:00) from timesteps within the run period only
    Called in:
    - Requests.Nonfed Request Daily Max expression slot
    - Federal Constraints.Peak Valley expression slot

    This function is similar to the DailyMax function but excludes values that are outside of the run period when finding the daily max.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( "DailyValuesRunPeriodOnly"( slot, timestep ) );\ \ END;\ \ FUNCTION "DailyMin" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - a timestep within the day for which the daily min is to be calculated

    Returns: NUMERIC - the smallest value in the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - Requests.Nonfed Request Daily Max expression slot
    - Federal Constraints.Peak Valley expression slot

    This function takes the list of all values for the specified expression slot from the calendar day returned by the DailyValues function and finds the smallest value. It is used to find minimum Request values for each day.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MinItem"( "DailyValues"( slot, timestep ) );\ \ END;\ \ FUNCTION "DailyMin0600" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - a timestep within the day for which the daily min is to be calculated

    Returns: NUMERIC - the smallest value in the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - Requests.Nonfed Request Daily Max expression slot
    - Federal Constraints.Peak Valley expression slot

    This function takes the list of all values for the specified expression slot from the calendar day returned by the DailyValues function and finds the smallest value. It is used to find minimum Request values for each day.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MinItem"( "DailyValues0600"( slot, timestep ) );\ \ END;\ \ FUNCTION "DailyMinRunPeriodOnly" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - a timestep within the day for which the daily min is to be calculated

    Returns: NUMERIC - the smallest value in the specified series slot in the calendar day (1:00 to 24:00) from timesteps within the run period only
    Called in:
    - Requests.Nonfed Request Daily Max expression slot
    - Federal Constraints.Peak Valley expression slot

    This function is similar to the DailyMin function but excludes values that are outside of the run period when finding the daily min.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MinItem"( "DailyValuesRunPeriodOnly"( slot, timestep ) );\ \ END;\ \ FUNCTION "MaxElevationMarginCalc" ( DATETIME t )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the Non-federal Elevation Margin

    Returns: LIST - five NUMERIC elements described below:
    0: currentMargin, the elevation margin (length) calculated from the current iteration, the primary value of interest returned by this function
    1: lower bound on the elevation margin (length) from the previous iteration
    2: upper bound on the elevation margin (length) from the previous iteration
    3: Uncertainty Margin Volume from the Nonfederal Data object (remains constant during the iterative loops)
    4: the volume corresponding to reducing all Non-federal reservoir levels from their max by the amount of currentMargin

    Called in:
    - Nonfederal Data.Max Elevation Margin expression slot

    This function takes the total Uncertainty Margin Volume for all Non-federal reservoirs and calculates a corresponding Elevation Margin such that reducing each reservoir's Pool Elevation from its max by the same Elevation Margin would result in a total change in volume summed across all five reservoirs equal to the Uncertainty Margin Volume. The Margin is intended as a "buffer" for elevation constraints to allow for uncertainty. The function uses an iterative bisection method to make this calculation. The function starts with an initial currentMargin value equal to the smallest difference between the Min and Max Controlling Elevations (either the License Min/Max or more restrictive values from Special Operations slots). This represents the largest possible margin, so the upper bound is also set to this value. The lower bound is initially set to 0 ft. It then calculates the volume that results from applying this margin to all five reservoirs. Then the following steps are repeated until the newVolume resulting from the currentMargin is within convergence of the Uncertainty Margin Volume:
    - If newVolume is greater than Uncertainty Margin Volume, calculate a newMargin by finding the midpoint between currentMargin and the lower bound and replace the upper bound with currentMargin.
    - Else (newVolume is less than Uncertainty Margin Volume) calculate a newMargin by finding the midpoint between currentMargin and the upper bound and replace the lower bound with currentMargin.
    - Replace currentMargin with newMargin
    - Calculate newVolume based on the elevation differences between the max and the max reduced by currentMargin.
    - Check If newVolume minus Uncertainty Margin Volume is less than the Uncertainty Volume Convergence.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WHILE ( "Abs"( ( GET @INDEX 4.00000000 FROM result ) - GET @INDEX 3.00000000 FROM result ) > $ "Nonfederal Data.Uncertainty Volume Convergence" [] ) WITH LIST result = WITH NUMERIC initMargin = 10.00000000 "ft" DO\ { initMargin , 0.00000000 "ft" , initMargin , $ "Nonfederal Data.Uncertainty Margin Volume for Max Elev" [t] , FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) ) - "ElevationToStorage"( res, "Max"( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - initMargin, ( "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) + "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) ) / 2.00000000 ) )\ ENDFOR , 0.00000000 }\ ENDWITH DO\ IF ( ( GET @INDEX 5.00000000 FROM result ) > $ "Nonfederal Data.Uncertainty Margin Max Iterations" [] )\ THEN\ STOP_RUN $ "Nonfederal Data.Uncertainty Margin Max Iterations" CONCAT ( " exceeded in " CONCAT ( $ "Nonfederal Data.Max Elevation Margin" CONCAT ( " calculation, " CONCAT ( t CONCAT ( ( STRINGIFY GET @INDEX 0.00000000 FROM result ) CONCAT ( ( STRINGIFY GET @INDEX 1.00000000 FROM result ) CONCAT ( ( STRINGIFY GET @INDEX 2.00000000 FROM result ) CONCAT ( ( STRINGIFY GET @INDEX 3.00000000 FROM result ) CONCAT STRINGIFY GET @INDEX 4.00000000 FROM result ) ) ) ) ) ) ) )\ ELSE\ IF ( ( GET @INDEX 4.00000000 FROM result ) > GET @INDEX 3.00000000 FROM result )\ THEN\ WITH NUMERIC newMargin = ( ( GET @INDEX 0.00000000 FROM result ) + GET @INDEX 1.00000000 FROM result ) / 2.00000000 DO\ { newMargin , GET @INDEX 1.00000000 FROM result , GET @INDEX 0.00000000 FROM result , GET @INDEX 3.00000000 FROM result , FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) ) - "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "Min"( newMargin, ( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) ) / 2.00000000 ) )\ ENDFOR , ( GET @INDEX 5.00000000 FROM result ) + 1.00000000 }\ ENDWITH\ ELSE\ WITH NUMERIC newMargin = ( ( GET @INDEX 0.00000000 FROM result ) + GET @INDEX 2.00000000 FROM result ) / 2.00000000 DO\ { newMargin , GET @INDEX 0.00000000 FROM result , GET @INDEX 2.00000000 FROM result , GET @INDEX 3.00000000 FROM result , FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) ) - "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "Min"( newMargin, ( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) ) / 2.00000000 ) )\ ENDFOR , ( GET @INDEX 5.00000000 FROM result ) + 1.00000000 }\ ENDWITH\ ENDIF\ ENDIF\ ENDWHILE;\ \ END;\ \ FUNCTION "MinElevationMarginCalc" ( DATETIME t )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the Non-federal Elevation Margin

    Returns: LIST - five NUMERIC elements described below:
    0: currentMargin, the elevation margin (length) calculated from the current iteration, the primary value of interest returned by this function
    1: lower bound on the elevation margin (length) from the previous iteration
    2: upper bound on the elevation margin (length) from the previous iteration
    3: Uncertainty Margin Volume from the Nonfederal Data object (remains constant during the iterative loops)
    4: the volume corresponding to increasing all Non-federal reservoir levels from their min by the amount of currentMargin

    Called in:
    - Nonfederal Data.Min Elevation Margin expression slot

    This function takes the total Uncertainty Margin Volume for all Non-federal reservoirs and calculates a corresponding Elevation Margin such that increasing each reservoir's Pool Elevation from its min by the same Elevation Margin would result in a total change in volume summed across all five reservoirs equal to the Uncertainty Margin Volume. The Margin is intended as a "buffer" for elevation constraints to allow for uncertainty. The function uses an iterative bisection method to make this calculation. The function starts with an initial currentMargin value equal to the smallest difference between the Min and Max Controlling Elevations (either the License Min/Max or more restrictive values from Special Operations slots). This represents the largest possible margin, so the upper bound is also set to this value. The lower bound is initially set to 0 ft. It then calculates the volume that results from applying this margin to all five reservoirs. Then the following steps are repeated until the newVolume resulting from the currentMargin is within convergence of the Uncertainty Margin Volume:
    - If newVolume is greater than Uncertainty Margin Volume, calculate a newMargin by finding the midpoint between currentMargin and the lower bound and replace the upper bound with currentMargin.
    - Else (newVolume is less than Uncertainty Margin Volume) calculate a newMargin by finding the midpoint between currentMargin and the upper bound and replace the lower bound with currentMargin.
    - Replace currentMargin with newMargin
    - Calculate newVolume based on the elevation differences between the min and the min increased by currentMargin.
    - Check If newVolume minus Uncertainty Margin Volume is less than the Uncertainty Volume Convergence.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WHILE ( "Abs"( ( GET @INDEX 4.00000000 FROM result ) - GET @INDEX 3.00000000 FROM result ) > $ "Nonfederal Data.Uncertainty Volume Convergence" [] ) WITH LIST result = WITH NUMERIC initMargin = 10.00000000 "ft" DO\ { initMargin , 0.00000000 "ft" , initMargin , $ "Nonfederal Data.Uncertainty Margin Volume for Min Elev" [t] , FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, "Min"( "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) + initMargin, ( "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) + "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) ) / 2.00000000 ) ) - "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) )\ ENDFOR , 0.00000000 }\ ENDWITH DO\ IF ( ( GET @INDEX 5.00000000 FROM result ) > $ "Nonfederal Data.Uncertainty Margin Max Iterations" [] )\ THEN\ STOP_RUN $ "Nonfederal Data.Uncertainty Margin Max Iterations" CONCAT ( " exceeded in " CONCAT ( $ "Nonfederal Data.Min Elevation Margin" CONCAT ( " calculation, " CONCAT t ) ) )\ ELSE\ IF ( ( GET @INDEX 4.00000000 FROM result ) > GET @INDEX 3.00000000 FROM result )\ THEN\ WITH NUMERIC newMargin = ( ( GET @INDEX 0.00000000 FROM result ) + GET @INDEX 1.00000000 FROM result ) / 2.00000000 DO\ { newMargin , GET @INDEX 1.00000000 FROM result , GET @INDEX 0.00000000 FROM result , GET @INDEX 3.00000000 FROM result , FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) + "Min"( newMargin, ( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) ) / 2.00000000 ) ) - "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) )\ ENDFOR , ( GET @INDEX 5.00000000 FROM result ) + 1.00000000 }\ ENDWITH\ ELSE\ WITH NUMERIC newMargin = ( ( GET @INDEX 0.00000000 FROM result ) + GET @INDEX 2.00000000 FROM result ) / 2.00000000 DO\ { newMargin , GET @INDEX 0.00000000 FROM result , GET @INDEX 2.00000000 FROM result , GET @INDEX 3.00000000 FROM result , FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) + "Min"( newMargin, ( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) ) / 2.00000000 ) ) - "ElevationToStorage"( res, "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) )\ ENDFOR , ( GET @INDEX 5.00000000 FROM result ) + 1.00000000 }\ ENDWITH\ ENDIF\ ENDIF\ ENDWHILE;\ \ END;\ \ FUNCTION "PoolElevationRampUp" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Pool Elevation" [t] - res & "Pool Elevation" [t - 1.00000000 "hr"];\ \ END;\ \ FUNCTION "OutflowRampUp" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Outflow" [timestep] - res & "Outflow" [timestep - 1.00000000 "hr"];\ \ END;\ \ FUNCTION "PoolElevationRampDown" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Pool Elevation" [t - 1.00000000 "hr"] - res & "Pool Elevation" [t];\ \ END;\ \ FUNCTION "OutflowRampDown" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Outflow" [timestep - 1.00000000 "hr"] - res & "Outflow" [timestep];\ \ END;\ \ FUNCTION "ProjectUsableContent" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Storage" [t] - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Min Controlling" ) [t] );\ \ END;\ \ END;\ \ UTILITY_GROUP "Data Validation Functions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "DataValidationSpecialOpeartionsSlotsNonfed" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { "Special Operations Min Pool Elevation" , "Special Operations Max Pool Elevation" , "Special Operations Min Outflow" , "Special Operations Max Outflow" , "Special Operations Min Spill" , "Special Operations Max Spill" , "Special Operations Min Turbine Release" , "Special Operations Max Turbine Release" , "Special Operations Min Generation" , "Special Operations Max Generation" , "Special Operations Min Tailwater Elev" , "Special Operations Max Tailwater Elev" } COMMENTED_BY "These are Special Ops slots common to all Nonfederal Reservoirs.";\ \ END;\ \ FUNCTION "DataValidationSpecialOpeartionsSlotsFed" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { "Special Operations Min Pool Elevation" , "Special Operations Max Pool Elevation" , "Special Operations Min Outflow" , "Special Operations Max Outflow" , "Special Operations Min Generation" , "Special Operations Max Generation" , "Special Operations Min Tailwater Elev" , "Special Operations Max Tailwater Elev" } COMMENTED_BY "These are Special Operations slots common to both Federal reservoirs.";\ \ END;\ \ FUNCTION "DataValidationSpecialOpeartionsSlotsWANPRD" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { "Special Operations Max Pool Elevation w Par Con" , "Special Operations Max Pool Elevation wo Par Con" , "Special Operations Min Generation w Par Con" , "Special Operations Min Generation wo Par Con" , "Special Operations Max Generation w Par Con" , "Special Operations Max Generation wo Par Con" , "Special Operations Min Pool Elevation w Par Con" , "Special Operations Min Pool Elevation wo Par Con" , "Special Operations Max Outflow w Par Con" , "Special Operations Max Outflow wo Par Con" , "Special Operations Min Outflow w Par Con" , "Special Operations Min Outflow wo Par Con" } COMMENTED_BY "These are Special Operations slots unique to Wanapum and Priest Rapids.";\ \ END;\ \ FUNCTION "DataValidationSpecialOpeartionsSoftSlots" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { "Special Operations Soft Min Pool Elevation" , "Special Operations Soft Max Pool Elevation" , "Special Operations Soft Min Outflow" , "Special Operations Soft Max Outflow" , "Special Operations Soft Min Spill" , "Special Operations Soft Max Spill" , "Special Operations Soft Min Turbine Release" , "Special Operations Soft Max Turbine Release" , "Special Operations Soft Min Generation" , "Special Operations Soft Max Generation" , "Special Operations Soft Min Tailwater Elev" , "Special Operations Soft Max Tailwater Elev" } COMMENTED_BY "These are Special Operations Soft slots common to all Nonfederal reservoirs.";\ \ END;\ \ FUNCTION "DataValidationSideFlowSlotsAllRes" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { "Hydrologic Inflow Adjust" } COMMENTED_BY "These are slots common to all reservoirs. These currently only issue warnings if they fail
    validation.";\ \ END;\ \ FUNCTION "DataValidationSpecialSlots" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { { $ "Grand Coulee.Inflow" , % "Grand Coulee Data Validation" , "Inflow" } , { $ "Requests.Initial Nonfed Request" , % "Requests Data Validation" , "Initial Nonfed Request" } , { $ "Requests.Nonfed Request Adjustment" , % "Requests Data Validation" , "Nonfed Request Adjustment" } , { $ "Federal Constraints.Bias Negative Limit" , % "Federal Data Validation" , "Bias Negative Limit" } , { $ "Federal Constraints.Bias Positive Limit" , % "Federal Data Validation" , "Bias Positive Limit" } , { $ "Grand Coulee Constraints.Bias Negative Limit" , % "Grand Coulee Data Validation" , "Bias Negative Limit" } , { $ "Grand Coulee Constraints.Bias Positive Limit" , % "Grand Coulee Data Validation" , "Bias Positive Limit" } , { $ "Grand Coulee Constraints.Bias Scheduled" , % "Grand Coulee Data Validation" , "Bias Scheduled" } , { $ "Chief Joseph Constraints.Bias Negative Limit" , % "Chief Joseph Data Validation" , "Bias Negative Limit" } , { $ "Chief Joseph Constraints.Bias Positive Limit" , % "Chief Joseph Data Validation" , "Bias Positive Limit" } , { $ "Chief Joseph Constraints.Bias Scheduled" , % "Chief Joseph Data Validation" , "Bias Scheduled" } , RPL_DISABLE ( { $ "Federal Constraints.Accumulated Exchange Max" , % "Federal Data Validation" , "Accum Exchange Max" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Federal Constraints.Accumulated Exchange Min" , % "Federal Data Validation" , "Accum Exchange Min" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Federal Constraints.Accumulated Exchange Target Max" , % "Federal Data Validation" , "Accum Exchange Target Max" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Federal Constraints.Accumulated Exchange Target Min" , % "Federal Data Validation" , "Accum Exchange Target Min" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Grand Coulee Constraints.Accumulated Exchange Max" , % "Grand Coulee Data Validation" , "Accum Exchange Max" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Grand Coulee Constraints.Accumulated Exchange Min" , % "Grand Coulee Data Validation" , "Accum Exchange Min" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , { $ "Grand Coulee Constraints.Accumulated Exchange Target Max" , % "Grand Coulee Data Validation" , "Accum Exchange Target Max" } , { $ "Grand Coulee Constraints.Accumulated Exchange Target Min" , % "Grand Coulee Data Validation" , "Accum Exchange Target Min" } , RPL_DISABLE ( { $ "Chief Joseph Constraints.Accumulated Exchange Max" , % "Chief Joseph Data Validation" , "Accum Exchange Max" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Chief Joseph Constraints.Accumulated Exchange Min" , % "Chief Joseph Data Validation" , "Accum Exchange Min" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Chief Joseph Constraints.Accumulated Exchange Target Max" , % "Chief Joseph Data Validation" , "Accum Exchange Target Max" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , RPL_DISABLE ( { $ "Chief Joseph Constraints.Accumulated Exchange Target Min" , % "Chief Joseph Data Validation" , "Accum Exchange Target Min" } COMMENTED_BY "Disabled for now because it is not currently imported" ) , { $ "Wells Constraints.Fish Spill Manual" , % "Wells Data Validation" , "Fish Spill Manual" } COMMENTED_BY "This may need to change if the slots used for importing fish spill change." , { $ "Rocky Reach Constraints.Fish Spill Manual" , % "Rocky Reach Data Validation" , "Fish Spill Manual" } COMMENTED_BY "This may need to change if the slots used for importing fish spill change." , { $ "Rock Island Constraints.Fish Spill Manual" , % "Rock Island Data Validation" , "Fish Spill Manual" } COMMENTED_BY "This may need to change if the slots used for importing fish spill change." , RPL_DISABLE ( { $ "Wanapum Constraints.Fall Fish Spill Manual" , % "Wanapum Data Validation" , "Fall Fish Spill Manual" } COMMENTED_BY "Siome work needs to be done to make sure the data sent to the model syncs with what the policy
    needs for fish spill. This could involve changes to the data import and/or poloicy." ) , RPL_DISABLE ( { $ "Wanapum Constraints.Summer Fish Spill Manual" , % "Wanapum Data Validation" , "Summer Fish Spill Manual" } COMMENTED_BY "Siome work needs to be done to make sure the data sent to the model syncs with what the policy
    needs for fish spill. This could involve changes to the data import and/or poloicy." ) , RPL_DISABLE ( { $ "Priest Rapids Constraints.Fall Fish Spill Manual" , % "Priest Rapids Data Validation" , "Fall Fish Spill Manual" } COMMENTED_BY "Siome work needs to be done to make sure the data sent to the model syncs with what the policy
    needs for fish spill. This could involve changes to the data import and/or poloicy." ) , RPL_DISABLE ( { $ "Priest Rapids Constraints.Summer Fish Spill Manual" , % "Priest Rapids Data Validation" , "Fall Fish Spill Manual" } COMMENTED_BY "Siome work needs to be done to make sure the data sent to the model syncs with what the policy
    needs for fish spill. This could involve changes to the data import and/or poloicy." ) , { $ "Priest Rapids Constraints.Flow Bands Import" , % "Priest Rapids Data Validation" , "Flow Bands Import" } , { $ "Priest Rapids Constraints.Daily High Flow Import" , % "Priest Rapids Data Validation" , "Daily High Flow Import" } , { $ "Grand Coulee Constraints.Spill Exchange Energy" , % "Grand Coulee Data Validation" , "Spill Exchange Energy" } , { $ "Chief Joseph Constraints.Spill Exchange Energy" , % "Chief Joseph Data Validation" , "Spill Exchange Energy" } } COMMENTED_BY "This is a list of lists, each with three elements:
    {Input Object.Slot, Validation Object, Validation Slot Name}

    These are slots that do not follow a standard pattern for all reservoirs but are required inputs for the regular run period, Start Timestep to Finish Timestep.";\ \ END;\ \ FUNCTION "DataValidationSpecialPeriodSlots" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { { $ "Grand Coulee Constraints.Initial Uncoordinated Request" , % "Grand Coulee Data Validation" , "Initial Uncoordinated Request" , @"Start Timestep - 1" , @"Finish Timestep + 24" } , { $ "Chief Joseph Constraints.Initial Uncoordinated Request" , % "Chief Joseph Data Validation" , "Initial Uncoordinated Request" , @"Start Timestep - 24" , @"Finish Timestep + 24" } , { $ "Okanogan River.Inflow" , % "Wells Data Validation" , "Okanogan River Inflow" , @"Start Timestep - 48" , @"Finish Timestep + 48" } , { $ "Methow River.Inflow" , % "Wells Data Validation" , "Methow River Inflow" , @"Start Timestep - 48" , @"Finish Timestep + 48" } , { $ "Chelan River.Inflow" , % "Rocky Reach Data Validation" , "Chelan River Inflow" , @"Start Timestep - 48" , @"Finish Timestep + 48" } , { $ "Entiat River.Inflow" , % "Rocky Reach Data Validation" , "Entiat River Inflow" , @"Start Timestep - 48" , @"Finish Timestep + 48" } , { $ "Wenatchee River.Inflow" , % "Rock Island Data Validation" , "Wenatchee River Inflow" , @"Start Timestep - 48" , @"Finish Timestep + 48" } , { $ "Crab Creek.Inflow" , % "Priest Rapids Data Validation" , "Crab Creek Inflow" , @"Start Timestep - 48" , @"Finish Timestep + 48" } , RPL_DISABLE { $ "Priest Rapids Constraints.CHJ Forecast Outflow" COMMENTED_BY "This eventually needs to be changed to Chief Joseph Constraints.Discharge Estimate Initial once
    the data import is changed." , % "Chief Joseph Data Validation" , "Discharge Estimate Initial" , "PreviousDate"( @"Start Timestep - 48", @"1:00:00" ) COMMENTED_BY "This should really be Start - 48, but currently the values are not getting imported for all of those
    timesteps.
    Revised to t-48 12-29-16 sjb" , @"Finish Timestep + 48" } , RPL_DISABLE ( { $ "Chief Joseph Constraints.Discharge Estimate Initial" , % "Chief Joseph Data Validation" , "Discharge Estimate Initial" , "PreviousDate"( @"Start Timestep - 48", @"1:00:00" ) , @"Finish Timestep + 48" } COMMENTED_BY "12-29-16
    Replacement to change to Chief Joseph Constraints.Discharge Estimate Initial sjb" ) , { $ "Chief Joseph Constraints.Discharge Estimate Adjustment" , % "Chief Joseph Data Validation" , "Discharge Estimate Adjustment" , @"Start Timestep - 24" , @"Finish Timestep + 48" } , { $ "Grand Coulee.Outflow" , % "Grand Coulee Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Chief Joseph.Outflow" , % "Chief Joseph Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Wells.Outflow" , % "Wells Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Rocky Reach.Outflow" , % "Rocky Reach Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Rock Island.Outflow" , % "Rock Island Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Wanapum.Outflow" , % "Wanapum Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Priest Rapids.Outflow" , % "Priest Rapids Data Validation" , "Outflow" , @"Start Timestep - 96" , @"Start Timestep - 1" } , { $ "Grand Coulee.Tailwater Elevation" , % "Grand Coulee Data Validation" , "Tailwater Elevation" , @"Start Timestep - 120" , @"Start Timestep - 1" } , { $ "Grand Coulee Constraints.Accumulated Exchange" , % "Grand Coulee Data Validation" , "Accumulated Exchange" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Chief Joseph Constraints.Accumulated Exchange" , % "Chief Joseph Data Validation" , "Accumulated Exchange" , @"Start Timestep - 1" , @"Start Timestep - 1" } , RPL_DISABLE ( { $ "Grand Coulee Constraints.Bias Actual" , % "Grand Coulee Data Validation" , "Bias Actual" , @"Start Timestep - 24" , @"Start Timestep - 1" } COMMENTED_BY "This needs to be re-enabled once the import is corrected to import values on Start -1." ) , RPL_DISABLE ( { $ "Chief Joseph Constraints.Bias Actual" , % "Chief Joseph Data Validation" , "Bias Actual" , @"Start Timestep - 24" , @"Start Timestep - 1" } COMMENTED_BY "This needs to be re-enabled once the import is corrected to import values on Start -1." ) , { $ "Grand Coulee.Pool Elevation" , % "Grand Coulee Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Chief Joseph.Pool Elevation" , % "Chief Joseph Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Wells.Pool Elevation" , % "Wells Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Rocky Reach.Pool Elevation" , % "Rocky Reach Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Rock Island.Pool Elevation" , % "Rock Island Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Wanapum.Pool Elevation" , % "Wanapum Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Priest Rapids.Pool Elevation" , % "Priest Rapids Data Validation" , "Pool Elevation" , @"Start Timestep - 1" , @"Start Timestep - 1" } , { $ "Grand Coulee.Regulated Spill" , % "Grand Coulee Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } , { $ "Chief Joseph.Regulated Spill" , % "Chief Joseph Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } , { $ "Wells.Regulated Spill" , % "Wells Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } , { $ "Rocky Reach.Regulated Spill" , % "Rocky Reach Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } , { $ "Rock Island.Regulated Spill" , % "Rock Island Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } , { $ "Wanapum.Regulated Spill" , % "Wanapum Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } , { $ "Priest Rapids.Regulated Spill" , % "Priest Rapids Data Validation" , "Regulated Spill" , @"Start Timestep - 25" , @"Start Timestep - 1" } } COMMENTED_BY "This is a list of lists, each with five elements:
    {Input Object.Slot, Validation Object, Validation Slot Name, Start time for input data, End time for
    input data}

    These are slots that require inputs for a period that does not match the run range, typically timesteps that extend prior to and/or after the run range.";\ \ END;\ \ FUNCTION "DataValidationSpecialSlotsWarningOnly" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { RPL_DISABLE ( { $ "Requests.Nonfed Request Adjustment" , % "Requests Data Validation" , "Nonfed Request Adjustment" } COMMENTED_BY "This is included as an example and disabled. Slots actually added to this list should have the same form but
    should be enabled." ) } COMMENTED_BY "This is a list of lists, each with three elements:
    {Input Object.Slot, Validation Object, Validation Slot Name}

    These are slots we just want to issue a warning if they fail validation, not stop the run.";\ \ END;\ \ FUNCTION "DataValidationSpecialPeriodSlotsWarningOnly" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ { { $ "Wells Constraints.Desired Elevation Target" , % "Wells Data Validation" , "Desired Elevation Target" , @"Start Timestep" , @"Finish Timestep" } , { $ "Rocky Reach Constraints.Desired Elevation Target" , % "Rocky Reach Data Validation" , "Desired Elevation Target" , @"Start Timestep" , @"Finish Timestep" } , { $ "Rock Island Constraints.Desired Elevation Target" , % "Rock Island Data Validation" , "Desired Elevation Target" , @"Start Timestep" , @"Finish Timestep" } , { $ "Wanapum Constraints.Desired Elevation Target" , % "Wanapum Data Validation" , "Desired Elevation Target" , @"Start Timestep" , @"Finish Timestep" } , { $ "Priest Rapids Constraints.Desired Elevation Target" , % "Priest Rapids Data Validation" , "Desired Elevation Target" , @"Start Timestep" , @"Finish Timestep" } } COMMENTED_BY "This is a list of lists, each with five elements:
    {Input Object.Slot, Validation Object, Validation Slot Name, Start time for validation, End time for validation}

    These are slots we just want to issue a warning if they fail validation, not stop the run.";\ \ END;\ \ FUNCTION "SpecialOperationsCorrespondingMinMaxSlot" ( STRING slotName )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH STRING MinOrMax = GET @INDEX 0.00000000 FROM "Split"( GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations " ), " " ) DO\ IF ( MinOrMax == "Min" )\ THEN\ WITH STRING constraintName = GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Min " ) DO\ { "Special Operations Max " CONCAT constraintName , "Min" }\ ENDWITH\ ELSE\ WITH STRING constraintName = GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Max " ) DO\ { "Special Operations Min " CONCAT constraintName , "Max" }\ ENDWITH\ ENDIF\ ENDWITH COMMENTED_BY "This function returns a list with two elements. The first is the corresponding Min/Max slot. For
    example, if the input slotName is "Speecial Operations Max Pool Elevation" the first element will
    return "Special Opeartions Min Pool Elevation."
    The second element returns whether the input slotName is a Min or a Max.
    This function only works for slot name that begin with "Special Operations Min" or "Special
    Operations Max"";\ \ END;\ \ FUNCTION "SpecialOperationsCorrespondingMinMaxSlotWANPRD" ( STRING slotName )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH STRING MinOrMax = GET @INDEX 0.00000000 FROM "Split"( GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations " ), " " ) DO\ IF ( MinOrMax == "Min" )\ THEN\ WITH STRING constraintName = GET @INDEX 0.00000000 FROM "Split"( GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Min " ), " w" ) DO\ { "Special Operations Max " CONCAT constraintName , "Min" }\ ENDWITH\ ELSE\ WITH STRING constraintName = GET @INDEX 0.00000000 FROM "Split"( GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Max " ), " w" ) DO\ { "Special Operations Min " CONCAT constraintName , "Max" }\ ENDWITH\ ENDIF\ ENDWITH COMMENTED_BY "This function returns a list with two elements. The first is the corresponding Min/Max slot. For
    example, if the input slotName is "Speecial Operations Max Pool Elevation" the first element will
    return "Special Opeartions Min Pool Elevation."
    The second element returns whether the input slotName is a Min or a Max.
    This function only works for slot name that begin with "Special Operations Min" or "Special
    Operations Max"";\ \ END;\ \ FUNCTION "SpecialOperationsSoftCorrespondingMinMaxSlot" ( STRING slotName )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH STRING MinOrMax = GET @INDEX 0.00000000 FROM "Split"( GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Soft " ), " " ) DO\ IF ( MinOrMax == "Min" )\ THEN\ WITH STRING constraintName = GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Soft Min " ) DO\ { "Special Operations Soft Max " CONCAT constraintName , "Min" }\ ENDWITH\ ELSE\ WITH STRING constraintName = GET @INDEX 1.00000000 FROM "Split"( slotName, "Special Operations Soft Max " ) DO\ { "Special Operations Soft Min " CONCAT constraintName , "Max" }\ ENDWITH\ ENDIF\ ENDWITH COMMENTED_BY "This function returns a list with two elements. The first is the corresponding Min/Max slot. For
    example, if the input slotName is "Speecial Operations Max Pool Elevation" the first element will
    return "Special Opeartions Min Pool Elevation."
    The second element returns whether the input slotName is a Min or a Max.
    This function only works for slot name that begin with "Special Operations Min" or "Special
    Operations Max"";\ \ END;\ \ FUNCTION "DataValidationSlotFromResSlot" ( OBJECT res, STRING slotName )\ RETURN_TYPE SLOT;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "GetObject"( ( STRINGIFY res ) CONCAT " Data Validation" ) & slotName;\ \ END;\ \ FUNCTION "DataValidationMaxSlotFromResSlot" ( OBJECT res, STRING slotName )\ RETURN_TYPE SLOT;\ SCALE_UNITS "";\ DESCRIPTION "
    ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "GetObject"( ( STRINGIFY res ) CONCAT " Data Validation" ) & ( slotName CONCAT " Max" );\ \ END;\ \ FUNCTION "DataValidationMinSlotFromResSlot" ( OBJECT res, STRING slotName )\ RETURN_TYPE SLOT;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "GetObject"( ( STRINGIFY res ) CONCAT " Data Validation" ) & ( slotName CONCAT " Min" );\ \ END;\ \ FUNCTION "DataValidationCountSlotFromValidationSlot" ( SLOT validationSlot )\ RETURN_TYPE SLOT;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "GetObjectFromSlot"( validationSlot ) & ( "GetSlotName"( validationSlot ) CONCAT " Failure Count" );\ \ END;\ \ FUNCTION "DataValidationExceedanceWarningMessage" ( SLOT inputSlot, DATETIME t, STRING MinOrMax, SLOT MinMaxSlot, STRING reportName )\ RETURN_TYPE STRING;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH STRING LessOrGreater = IF ( MinOrMax == "Max" )\ THEN\ "greater"\ ELSE\ "less"\ ENDIF DO\ WITH NUMERIC acctNum = $ "Data Validation.EAS Acct Number to Slot Map" [STRINGIFY inputSlot, IF ( t < @"Start Timestep" )\ THEN\ "Pre-Run Period"\ ELSE\ "Run Period"\ ENDIF] DO\ WITH NUMERIC acctNameIndex = "GetRowIndex"( $ "Data Validation.EAS Acct Number Index Map", "IntegerToString"( acctNum ) ) DO\ WITH STRING acctName = "RowLabel"( $ "Data Validation.EAS Acct Number to Acct Name Map", acctNameIndex ) DO\ inputSlot CONCAT " on " CONCAT t CONCAT ", value of " CONCAT ( inputSlot [t] ) CONCAT " is " CONCAT LessOrGreater CONCAT " than the validation criteria of " CONCAT ( MinMaxSlot [] ) CONCAT ". EAS Account: " CONCAT ( IF ( acctNum <= 9999.00000000 )\ THEN\ "IntegerToString"( acctNum )\ ELSE\ "No Account Number"\ ENDIF COMMENTED_BY "Some inputs do not come from an EAS account, so we use a dummy account number in those
    cases." ) CONCAT " - " CONCAT acctName\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "DataValidationConflictingMinMaxWarningMessage" ( SLOT inputSlot, DATETIME t, STRING MinOrMax, SLOT correspondingSlot, STRING reportName )\ RETURN_TYPE STRING;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH STRING LessOrGreater = IF ( MinOrMax == "Min" )\ THEN\ "greater"\ ELSE\ "less"\ ENDIF DO\ WITH NUMERIC acctNum1 = $ "Data Validation.EAS Acct Number to Slot Map" [STRINGIFY inputSlot, IF ( t < @"Start Timestep" )\ THEN\ "Pre-Run Period"\ ELSE\ "Run Period"\ ENDIF] DO\ WITH NUMERIC acctNum2 = $ "Data Validation.EAS Acct Number to Slot Map" [STRINGIFY correspondingSlot, IF ( t < @"Start Timestep" )\ THEN\ "Pre-Run Period"\ ELSE\ "Run Period"\ ENDIF] DO\ WITH NUMERIC acctName1Index = "GetRowIndex"( $ "Data Validation.EAS Acct Number Index Map", "IntegerToString"( acctNum1 ) ) DO\ WITH NUMERIC acctName2Index = "GetRowIndex"( $ "Data Validation.EAS Acct Number Index Map", "IntegerToString"( acctNum2 ) ) DO\ WITH STRING acctName1 = "RowLabel"( $ "Data Validation.EAS Acct Number to Acct Name Map", acctName1Index ) DO\ WITH STRING acctName2 = "RowLabel"( $ "Data Validation.EAS Acct Number to Acct Name Map", acctName2Index ) DO\ inputSlot CONCAT " on " CONCAT t CONCAT ", value of " CONCAT ( inputSlot [t] ) CONCAT " is " CONCAT LessOrGreater CONCAT " than " CONCAT correspondingSlot CONCAT " value of " CONCAT ( correspondingSlot [t] ) CONCAT ". EAS Accounts: " CONCAT ( IF ( acctNum1 <= 9999.00000000 )\ THEN\ "IntegerToString"( acctNum1 )\ ELSE\ "No Account Number"\ ENDIF COMMENTED_BY "Some inputs do not come from an EAS account, so we use a dummy account number in those
    cases." ) CONCAT " - " CONCAT acctName1 CONCAT " and " CONCAT ( IF ( acctNum2 <= 9999.00000000 )\ THEN\ "IntegerToString"( acctNum2 )\ ELSE\ "No Account Number"\ ENDIF COMMENTED_BY "Some inputs do not come from an EAS account, so we use a dummy account number in those
    cases." ) CONCAT " - " CONCAT acctName2\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "DataValidationMissingDataWarningMessage" ( SLOT inputSlot, DATETIME t, STRING reportName )\ RETURN_TYPE STRING;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH STRING inputSlotString = STRINGIFY inputSlot DO\ IF ( inputSlotString IN "RowLabels"( $ "Data Validation.EAS Acct Number to Slot Map" ) )\ THEN\ WITH NUMERIC acctNum = $ "Data Validation.EAS Acct Number to Slot Map" [inputSlotString, IF ( t < @"Start Timestep" )\ THEN\ "Pre-Run Period"\ ELSE\ "Run Period"\ ENDIF] DO\ WITH NUMERIC acctNameIndex = "GetRowIndex"( $ "Data Validation.EAS Acct Number Index Map", "IntegerToString"( acctNum ) ) DO\ WITH STRING acctName = "RowLabel"( $ "Data Validation.EAS Acct Number to Acct Name Map", acctNameIndex ) DO\ inputSlot CONCAT " on " CONCAT t CONCAT ", is missing expected data. EAS Account: " CONCAT ( IF ( acctNum <= 9999.00000000 )\ THEN\ "IntegerToString"( acctNum )\ ELSE\ "No Account Number"\ ENDIF COMMENTED_BY "Some inputs do not come from an EAS account, so we use a dummy account number in those
    cases." ) CONCAT " - " CONCAT acctName\ ENDWITH\ ENDWITH\ ENDWITH\ ELSE\ inputSlot CONCAT " on " CONCAT t CONCAT ", is missing expected data. EAS Account information is not available. " CONCAT inputSlot CONCAT " needs to be added to " CONCAT $ "Data Validation.EAS Acct Number to Slot Map"\ ENDIF\ ENDWITH;\ \ END;\ \ FUNCTION "DataValidationSlotFailureCountWarningMessage" ( SLOT inputSlot, NUMERIC failureCount, STRING reportName )\ RETURN_TYPE STRING;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ inputSlot CONCAT " failed data validation on " CONCAT "IntegerToString"( failureCount ) CONCAT " hours. See Report: " CONCAT reportName;\ \ END;\ \ END;\ \ UTILITY_GROUP "PreRun Estimate Functions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "QOMinVolumeEstimateInitial" ( OBJECT res, DATETIME start, DATETIME end )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH NUMERIC maxEndingElev = "SlotFromDataObject"( res, "Elevation Max Controlling" ) [end] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [end] DO\ WITH NUMERIC startingElev = IF ( start == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [@"Start Timestep - 1"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [start - 1.00000000 "hr"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [start - 1.00000000 "hr"]\ ENDIF DO\ WITH NUMERIC inflowVol = "SumFlowsToVolume"( "SlotFromDataObject"( res, "Inflow Estimate" ), start, end ) DO\ "MaxItem"( { "ElevationToStorage"( res, startingElev ) - "ElevationToStorage"( res, maxEndingElev ) + inflowVol , "SumFlowsToVolumeSkipNaN"( "SlotFromDataObject"( res, "Special Operations Min Outflow" ), start, end ) , IF ( res == % "Priest Rapids" )\ THEN\ "SumFlowsToVolumeSkipNaN"( $ "Vernita Bar Constraints.Protection Level Flow", start, end )\ ELSE\ 0.00000000 "kcfs-hr"\ ENDIF } )\ ENDWITH\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "OHAVgEstimateInitial" ( OBJECT res, NUMERIC minOutVol, DATETIME start, DATETIME end )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH OBJECT downstreamRes = "DownstreamRes"( res ) DO\ WITH LIST dayTimesteps = start TO end DO\ WITH NUMERIC maxEndingElev = "SlotFromDataObject"( res, "Elevation Max Controlling" ) [end] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [end] DO\ WITH NUMERIC startingElev = IF ( start == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [@"Start Timestep - 1"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [start - 1.00000000 "hr"]\ ENDIF DO\ WITH NUMERIC minOutflowAvg = minOutVol / ( end - start + 1.00000000 "hr" ) DO\ WITH NUMERIC twBaseVal = IF ( res == % "Priest Rapids" )\ THEN\ 0.00000000 "ft" COMMENTED_BY "Priest Rapids does not use a Base Value. Tailwater is only a function of Outflow."\ ELSE\ "SlotFromDataObject"( downstreamRes, "Pool Elevation Estimate Avg" ) []\ ENDIF DO\ WITH NUMERIC twAvg = IF ( res == % "Rocky Reach" OR res == % "Priest Rapids" )\ THEN\ "TableInterpolation"( res & "Tailwater Table", 0.00000000, 1.00000000, minOutflowAvg, @"Start Timestep" ) COMMENTED_BY "Rocky Reach and Priest Rapids use the Base Value Plus Lookup Table method for Tailwater." + twBaseVal\ ELSE\ "TableInterpolation3D"( res & "Stage Flow Tailwater Table", 0.00000000, minOutflowAvg, 1.00000000, twBaseVal, 2.00000000, @"Start Timestep" ) COMMENTED_BY "The other projects use the Stage Flow Lookup Table method for Tailwater."\ ENDIF DO\ WITH NUMERIC elevAvg = ( startingElev + maxEndingElev ) / 2.00000000 DO\ elevAvg - twAvg\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "PowerMaxFromTableGivenOH" ( OBJECT res, NUMERIC OHAvg )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH LIST OHRoundedDownInTable = FOR ( NUMERIC i IN "GetNumbers"( 0.00000000, "NumRows"( res & "Plant Power Table" ) - 1.00000000, 1.00000000 ) ) WITH LIST result = { 0.00000000 "ft" , 0.00000000 } DO\ IF ( res & "Plant Power Table" [i, 0.00000000] <= OHAvg )\ THEN\ { res & "Plant Power Table" [i, 0.00000000] , i }\ ELSE\ result\ ENDIF\ ENDFOR DO\ WITH LIST OHRoundedUpInTable = FOR ( NUMERIC i IN "GetNumbers"( 0.00000000, "NumRows"( res & "Plant Power Table" ) - 1.00000000, 1.00000000 ) ) WITH LIST result = { } DO\ IF ( res & "Plant Power Table" [i, 0.00000000] >= OHAvg )\ THEN\ IF ( result == { } )\ THEN\ { res & "Plant Power Table" [i, 0.00000000] , i }\ ELSE\ IF ( res & "Plant Power Table" [i, 0.00000000] == GET @INDEX 0.00000000 FROM result )\ THEN\ { GET @INDEX 0.00000000 FROM result , i }\ ELSE\ result\ ENDIF\ ENDIF\ ELSE\ result\ ENDIF\ ENDFOR DO\ WITH NUMERIC lowerRowIndex = GET @INDEX 1.00000000 FROM OHRoundedDownInTable DO\ WITH NUMERIC upperRowIndex = GET @INDEX 1.00000000 FROM OHRoundedUpInTable DO\ WITH NUMERIC lowerPower = res & "Plant Power Table" [lowerRowIndex, 2.00000000] DO\ WITH NUMERIC upperPower = res & "Plant Power Table" [upperRowIndex, 2.00000000] DO\ ( upperPower - lowerPower ) / ( ( GET @INDEX 0.00000000 FROM OHRoundedUpInTable ) - GET @INDEX 0.00000000 FROM OHRoundedDownInTable ) * ( OHAvg - GET @INDEX 0.00000000 FROM OHRoundedDownInTable ) + lowerPower\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "QTMaxEstimateGivenOHAvg" ( OBJECT res, NUMERIC OHAvg, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH NUMERIC maxGenFromTableForOH = "PowerMaxFromTableGivenOH"( res, OHAvg ) DO\ "MinItem"( { "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, OHAvg, 2.00000000, "Min"( IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t]\ ELSE\ 30000.00000000 "MW" COMMENTED_BY "Dummy Value"\ ENDIF, maxGenFromTableForOH ), 1.00000000, @"Start Timestep" ) , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Turbine Release" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Turbine Release" ) [t]\ ELSE\ 30000.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF } )\ ENDWITH;\ \ END;\ \ FUNCTION "QTMaxVolumeEstimateGivenOHAvg" ( OBJECT res, NUMERIC OHAvg, DATETIME start, DATETIME end )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH LIST dayTimesteps = start TO end DO\ FOR ( DATETIME t IN dayTimesteps ) STAT_SUM\ "QTMaxEstimateGivenOHAvg"( res, OHAvg, t )\ ENDFOR * 1.00000000 "hr"\ ENDWITH;\ \ END;\ \ FUNCTION "InflowEstimateUsingUpstreamOutflowEstimate" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( IF ( "FourProjectCoordination"( ) AND res == % "Rocky Reach" )\ THEN\ "Lagged"( % "WEL to RRH", $ "Wells Constraints.Outflow Initial", t )\ ELSE\ "Lagged"( "UpstreamReach"( res ), "SlotFromDataObject"( "UpstreamReservoir"( res ), "Outflow Estimate" ), t )\ ENDIF + res & "Hydrologic Inflow Adjust" [t] + IF ( res == % "Wells" )\ THEN\ $ "Okanogan River.Inflow" [t] + $ "Methow River.Inflow" [t]\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ $ "Chelan River.Inflow" [t] + $ "Entiat River.Inflow" [t]\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ $ "Wenatchee River.Inflow" [t]\ ELSE\ IF ( res == % "Priest Rapids" )\ THEN\ $ "Crab Creek.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF\ ENDIF\ ENDIF );\ \ END;\ \ FUNCTION "RequiredSpillEstimateGivenOutflowEstimate" ( OBJECT res, NUMERIC outflowEst, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( { IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), t ) AND "SlotFromDataObject"( res, "Fish Spill Manual" ) [t] > 0.00000000 "kcfs" )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Manual" ) [t] + IF ( res == % "Priest Rapids" )\ THEN\ $ "Priest Rapids Constraints.Spill Exchange Spill" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ IF ( res == % "Wanapum" OR res == % "Priest Rapids" )\ THEN\ "GrantFishSpill"( res, t ) + IF ( res == % "Priest Rapids" )\ THEN\ $ "Priest Rapids Constraints.Spill Exchange Spill" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ IF ( "IsActiveSeason"( res, "Summer Fish Spill Season", t ) )\ THEN\ "SlotFromDataObject"( res, "Summer Fish Spill Default Shape" ) [t] * outflowEst\ ELSE\ IF ( ( res == % "Rocky Reach" OR res == % "Rock Island" ) AND "IsActiveSeason"( res, "Spring Fish Spill Season", t ) )\ THEN\ "SlotFromDataObject"( res, "Spring Fish Spill Default Shape" ) [t] * outflowEst\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF\ ENDIF\ ENDIF COMMENTED_BY "Fish Spill plus Spill Exchange" , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Min Spill" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Spill" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Min Spill" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF } ) + IF ( ( res == % "Rocky Reach" OR res == % "Rock Island" ) )\ THEN\ IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Ladder" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Fish Ladder" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Bypass" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Fish Bypass" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF COMMENTED_BY "Include RRH and RIS Fish Ladder and Fish Bypass";\ \ END;\ \ END;\ \ UTILITY_GROUP "Spill Constraint Functions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "IsAnyFishSpillSeason" ( DATETIME t )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "This function is used to determine which Spill Minimization Table to use. If any project is in Fish Spill Season (this function returns TRUE), we use the Fish Spill Season version. If no projects are in Fish Spill (this function returns FALSE), we use the No Fish Spill version.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( "IsActiveSeason"( % "Priest Rapids", "Summer Fish Spill Season", t ) OR "IsActiveSeason"( % "Wanapum", "Summer Fish Spill Season", t ) OR ( "IsActiveSeason"( % "Rocky Reach", "Spring Fish Spill Season", t ) OR "IsActiveSeason"( % "Rocky Reach", "Summer Fish Spill Season", t ) ) OR ( "IsActiveSeason"( % "Rock Island", "Spring Fish Spill Season", t ) OR "IsActiveSeason"( % "Rock Island", "Summer Fish Spill Season", t ) ) OR ( NOT "FourProjectCoordination"( ) AND "IsActiveSeason"( % "Wells", "Summer Fish Spill Season", t ) ) ) COMMENTED_BY "This function is used to determine which Spill Minimization Table to use. If any project is in Fish
    Spill Season (this function returns TRUE), we use the Fish Spill Season version. If no projects are
    in Fish Spill (this function returns FALSE), we use the No Fish Spill version.";\ \ END;\ \ FUNCTION "MinSpillLevels" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ "NumRows"( $ "Nonfederal Data.Spill Minimization Table" );\ \ END;\ \ FUNCTION "MinSpillLevelsFishSpillSeason" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ "NumRows"( $ "Nonfederal Data.Spill Minimization Table Fish Spill Season" );\ \ END;\ \ FUNCTION "MinSpillLevelsNoFishSpill" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ "NumRows"( $ "Nonfederal Data.Spill Minimization Table No Fish Spill" );\ \ END;\ \ FUNCTION "MinSpillLevelsCondensed" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ TIME_INVARIANT;\ NOTES "";\ BEGIN\ \ "NumRows"( $ "Nonfederal Data.Spill Minimization Table Condensed" );\ \ END;\ \ FUNCTION "GrantFishSpill" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), t ) AND "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) > 0.00000000 "kcfs" ) )\ THEN\ "SlotValueFromDataObject"( res, "Fish Spill Manual", t )\ ELSE\ IF ( "IsActiveSeason"( res, "Summer Fish Spill Season", t ) )\ THEN\ WITH NUMERIC mostRecentManualVal = FOR ( DATETIME h IN @"Start Timestep" TO t - 1.00000000 "hr" ) WITH NUMERIC result = 0.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), h ) AND "SlotFromDataObject"( res, "Fish Spill Manual" ) [h] > 0.00000000 "kcfs" )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Manual" ) [h]\ ELSE\ result\ ENDIF\ ENDFOR DO\ IF ( mostRecentManualVal > 0.00000000 "kcfs" )\ THEN\ mostRecentManualVal\ ELSE\ "ScalarValueFromDataObject"( res, "Summer Fish Spill Default" )\ ENDIF\ ENDWITH\ ELSE\ IF ( "IsActiveSeason"( res, "Fall Fish Spill Season", t ) )\ THEN\ WITH NUMERIC mostRecentManualVal = FOR ( DATETIME h IN @"Start Timestep" TO t - 1.00000000 "hr" ) WITH NUMERIC result = 0.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), h ) AND "SlotFromDataObject"( res, "Fish Spill Manual" ) [h] > 0.00000000 "kcfs" )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Manual" ) [h]\ ELSE\ result\ ENDIF\ ENDFOR DO\ IF ( mostRecentManualVal > 0.00000000 "kcfs" )\ THEN\ mostRecentManualVal\ ELSE\ "ScalarValueFromDataObject"( res, "Fall Fish Spill Default" )\ ENDIF\ ENDWITH\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF\ ENDIF COMMENTED_BY "The fish spill functions first look for a non-zero value in Fish Spill Manual. If there is a non-zero value, that gets
    used. If the Fish Spill Manual value is 0 kcfs, it means that Central did not receive a fish spill signal from the PUD
    for that timestep, so it goes to the default logic as a backup.
    For the Grant default logic, the are two potential fish spill seasons, Summer and Fall. The Fall Fish Spill is just Fish
    Ladder. If the timestep is within one of these two seasons, then it first checks to see if there is a non-zero Fish
    Spill Manual earlier in the run. If so, it uses the latest non-zero value for the remaining hours. If there are no non-z
    ero values, then it goes to the final back-up logic, which uses a default scalar slot.
    For this function to apply as intended, the Default scalar slots need to have appropriate values, and the start and
    end dates in the Fish Spill Season Operations slots should be kept up-to-date for the current year.";\ \ END;\ \ FUNCTION "ChelanFishSpill" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Spill", t )\ ELSE\ IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), t ) AND "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) > 0.00000000 "kcfs" )\ THEN\ "SlotValueFromDataObject"( res, "Fish Spill Manual", t )\ ELSE\ IF ( "IsActiveSeason"( res, "Spring Fish Spill Season", t ) )\ THEN\ "ScalarValueFromDataObject"( res, "Spring Fish Spill Percent Default" ) * res & "Outflow" [t]\ ELSE\ IF ( "IsActiveSeason"( res, "Summer Fish Spill Season", t ) )\ THEN\ "ScalarValueFromDataObject"( res, "Summer Fish Spill Percent Default" ) * res & "Outflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF\ ENDIF\ ENDIF COMMENTED_BY "The Chelan Manual Fish Spill imports data, but it stops before the end of the run, setting zeroes
    for remaining time steps. This function currently includes a correction for that. This will possible
    get revised later if Special Operations slots are used for Fish Spill.";\ \ END;\ \ FUNCTION "DouglasFishSpill" ( OBJECT res, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( "ScalarValueFromDataObject"( res, "Summer Fish Spill Percent Default" ) * res & "Outflow" [t] ) COMMENTED_BY "The Fish Spill constraints have a temporary format because the data connection is currently not
    set up to use Special Operations Min Spill. So they are set up to use defaults in most cases.
    These will possibly get revised later.";\ \ END;\ \ FUNCTION "GrantMaxSpillAdjusted" ( OBJECT res, NUMERIC maxSpillArg, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( { maxSpillArg , "GrantFishSpill"( res, t ) , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Spill", t )\ ELSE\ 0.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Soft Min Spill", t )\ ELSE\ 0.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF } ) COMMENTED_BY "We do not want to try to spill less than is required for Fish Spill.";\ \ END;\ \ FUNCTION "ChelanMaxSpillAdjusted" ( OBJECT res, NUMERIC maxSpillArg, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( { maxSpillArg , "SlotFromDataObject"( res, "Spill Required" ) [t] , IF ( "IsActiveSeason"( res, "Spring Fish Spill Season", t ) OR "IsActiveSeason"( res, "Summer Fish Spill Season", t ) AND ( IsNaN "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) OR "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) == 0.00000000 "kcfs" ) )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Default" ) COMMENTED_BY "Fish Spill Default is set by an init rule as a back-up in case Central does not receive a spill signal
    from Chelan for some timesteps during spill season." [t]\ ELSE\ 0.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF COMMENTED_BY "This is for the case that Fish Spill Manual did not get imported during spill season or it got
    imported as zero (i.e. Central did not receive a spill signal from Chelan)." } ) COMMENTED_BY "We do not want to try to spill less than is required for Fish Spill.";\ \ END;\ \ FUNCTION "DouglasMaxSpillAdjusted" ( OBJECT res, NUMERIC maxSpillArg, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( { maxSpillArg , "SlotFromDataObject"( res, "Spill Required" ) [t] , IF ( "IsActiveSeason"( res, "Summer Fish Spill Season", t ) AND ( IsNaN "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) OR "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) == 0.00000000 "kcfs" ) )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] COMMENTED_BY "Fish Spill Default is set by an init rule as a back-up in case Central does not receive a spill signal
    from Douglas for some timesteps during spill season."\ ELSE\ 0.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF } ) COMMENTED_BY "We do not want to try to spill less than is required for Fish Spill.";\ \ END;\ \ FUNCTION "MaxSpillAdjusted" ( OBJECT res, NUMERIC maxSpillArg, DATETIME t )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "MaxItem"( { maxSpillArg , "SlotFromDataObject"( res, "Spill Required" ) [t] } ) COMMENTED_BY "We do not want to try to spill less than is required for Fish Spill.";\ \ END;\ \ END;\ \ UTILITY_GROUP "Federal Load Bias and Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "InDayTotal" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot to be totalled over the calendar day
    DATETIME - a timestep within the day for which the slot is to be totalled

    Returns: NUMERIC - the sum of all values the specified series slot in the calendar day (1:00 to 24:00)
    Called in:
    - Scaled Request expression slot on Grand Coulee Constraints and Chief Joseph Constraints
    - Priest Rapids Constraints.Outflow Daily Target Default
    ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN "PreviousDate"( timestep, @"1:00:00" ) TO "NextDate"( timestep, @"24:00:00" ) ) STAT_SUM\ slotName [hour]\ ENDFOR;\ \ END;\ \ FUNCTION "InDayTotalRunPeriodOnly" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot to be totalled over the calendar day
    DATETIME - a timestep within the day for which the slot is to be totalled

    Returns: NUMERIC - the sum of all values the specified series slot in the calendar day (1:00 to 24:00) from timesteps within the run period only
    Called in:
    - Scaled Request expression slot on Grand Coulee Constraints and Chief Joseph Constraints

    This function is similar to the InDayTotal function but excludes any values from timesteps outside of the run period.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN "DateMax"( "PreviousDate"( timestep, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( "NextDate"( timestep, @"24:00:00" ), @"Finish Timestep" ) ) STAT_SUM\ slotName [hour]\ ENDFOR;\ \ END;\ \ FUNCTION "MovingAverage5Hour" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - a series slot
    DATETIME - the specified timestep, the middle timestep in the 5 hours to be averaged

    Returns: NUMERIC - the 5-hour average value of the specified slot from the specified timestep, the two previous timesteps, and the two following timesteps
    Called in:
    - Smoothed Request expression slot on the Grand Coulee Constraints and Chief Joseph Constraints data objects

    This function is used to smooth the Grand Coulee and Chief Joseph Requests by applying a 5-hour moving average. The basic form of the function is in the final ELSE expression. The mean value from the slot is taken from the specified timestep, the two previous timesteps, and the two following timesteps (i.e. the specified timestep is in the middle of the moving 5-hour window). The other forms of the expression in the IF statements are to account for the first two timesteps and final two timesteps of the run when the run period does not contain the entire 5-hour window. In these cases, only the values within the run period are used in finding the average.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( timestep == @"Start Timestep" )\ THEN\ FOR ( DATETIME hour IN @"Start Timestep" TO @"Start Timestep" + 2.00000000 "hr" ) STAT_AVE\ slotName [hour]\ ENDFOR\ ELSE\ IF ( timestep == @"Start Timestep" + 1.00000000 "hr" )\ THEN\ FOR ( DATETIME hour IN @"Start Timestep" TO @"Start Timestep" + 3.00000000 "hr" ) STAT_AVE\ slotName [hour]\ ENDFOR\ ELSE\ IF ( timestep == @"Finish Timestep" )\ THEN\ FOR ( DATETIME hour IN @"Finish Timestep" - 2.00000000 "hr" TO @"Finish Timestep" ) STAT_AVE\ slotName [hour]\ ENDFOR\ ELSE\ IF ( timestep == @"Finish Timestep" - 1.00000000 "hr" )\ THEN\ FOR ( DATETIME hour IN @"Finish Timestep" - 3.00000000 "hr" TO @"Finish Timestep" ) STAT_AVE\ slotName [hour]\ ENDFOR\ ELSE\ FOR ( DATETIME hour IN timestep - 2.00000000 "hr" TO timestep + 2.00000000 "hr" ) STAT_AVE\ slotName [hour]\ ENDFOR\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "GCLHourlyDrawdownApprox1Correction" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the specified timestep at which to calculate the maximum Grand Coulee Tailwater hourly drawdown
    Returns: NUMERIC - maximum amount the estimated Grand Coulee Tailwater Elevation can decrease when the previous estimated Tailwater is 951-957 ft
    Called in:
    - Grand Coulee Constraints.Corrected Tailwater Release

    This function is called as part of the methodology to adjust the Federal Request. This function is used to check that the estimated Tailwater resulting from the Grand Coulee Release will not violate hourly Tailwater Drawdown limits after the Release has been adjusted to smooth the request and meet Chief Joseph Pool Elevation requirements. This mimics the GCLHourlyDrawdownApproximation1 function used in the Grand Coulee Tailwater Drawdown constraints but uses the Grand Coulee Constraints.Corrected Tailwater (a pre-run estimate expression slot) because Tailwater Elevation is not yet known. The actual hourly drawdown limits are represented by a step function of the previous hour's Tailwater Elevation. These approximation functions provide a linear approximation that is slightly more restrictive. If the estimated Tailwater Drawdown exceeds the value returned by this function, the Grand Coulee Corrected Release will be increased sufficiently that the Tailwater Drawdown will be equal to this limit.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( timestep == @"Start Timestep" )\ THEN\ 0.25000000 * ( $ "Grand Coulee.Tailwater Elevation" [timestep - 1.00000000 "hr"] - 953.00000000 "ft" ) + 2.00000000 "ft"\ ELSE\ 0.25000000 * ( $ "Grand Coulee Constraints.Corrected Tailwater" [timestep - 1.00000000 "hr"] - 953.00000000 "ft" ) + 2.00000000 "ft"\ ENDIF COMMENTED_BY "This limit applies when the previous hour's Tailwater Elevation is 951-957 ft.";\ \ END;\ \ FUNCTION "GCLHourlyDrawdownApprox2Correction" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the specified timestep at which to calculate the maximum Grand Coulee Tailwater hourly drawdown
    Returns: NUMERIC - maximum amount the estimated Grand Coulee Tailwater Elevation can decrease when the previous estimated Tailwater is 957-967 ft
    Called in:
    - Grand Coulee Constraints.Corrected Tailwater Release

    This function is called as part of the methodology to adjust the Federal Request. This function is used to check that the estimated Tailwater resulting from the Grand Coulee Release will not violate hourly Tailwater Drawdown limits after the Release has been adjusted to smooth the request and meet Chief Joseph Pool Elevation requirements. This mimics the GCLHourlyDrawdownApproximation2 function used in the Grand Coulee Tailwater Drawdown constraints but uses the Grand Coulee Constraints.Corrected Tailwater (a pre-run estimate expression slot) because Tailwater Elevation is not yet known. The actual hourly drawdown limits are represented by a step function of the previous hour's Tailwater Elevation. These approximation functions provide a linear approximation that is slightly more restrictive. If the estimated Tailwater Drawdown exceeds the value returned by this function, the Grand Coulee Corrected Release will be increased sufficiently that the Tailwater Drawdown will be equal to this limit.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( timestep == @"Start Timestep" )\ THEN\ 0.20000000 * ( $ "Grand Coulee.Tailwater Elevation" [timestep - 1.00000000 "hr"] - 957.00000000 "ft" ) + 3.00000000 "ft"\ ELSE\ 0.20000000 * ( $ "Grand Coulee Constraints.Corrected Tailwater" [timestep - 1.00000000 "hr"] - 957.00000000 "ft" ) + 3.00000000 "ft"\ ENDIF COMMENTED_BY "This limit applies when the previous hour's Tailwater Elevation is 957-967 ft.";\ \ END;\ \ FUNCTION "PreviousMinRequestTime" ( DATETIME timestep )\ RETURN_TYPE DATETIME;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the specified timestep being evaluated
    Returns: DATETIME - the timestep of the most recent daily minimum Federal Request relative to the specified timestep
    Called in:
    - Federal Constraints.Lower Generation Bound expression slot

    This function is used in calculating the Lower Generation Bound, which is in turn used to calculate the Bias Negative Revised Limit. It looks at the all values from the Federal Constraints.Peak Valley slot (a value of 2 in the slot represents a daily minimum Request) over the previous 32 hours. It returns the timestep that is a daily minimum (has a value of 2) that is closest to the timestep specified in the function argument. This datetime value is used for drawing a line from valley to valley as the lower generation bound.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( LIST sublist IN "PeakValleyList"( "DateMax"( timestep - 32.00000000 "hr", @"Start Timestep" ), timestep - 1.00000000 "hr" ) ) WITH DATETIME result = @"Start Timestep" DO\ IF ( ( GET @INDEX 1.00000000 FROM sublist ) == 2.00000000 AND ( GET @INDEX 0.00000000 FROM sublist ) > result )\ THEN\ GET @INDEX 0.00000000 FROM sublist\ ELSE\ result\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "NextMinRequestTime" ( DATETIME timestep )\ RETURN_TYPE DATETIME;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the specified timestep being evaluated
    Returns: DATETIME - the timestep of the next daily minimum Federal Request relative to the specified timestep
    Called in:
    - Federal Constraints.Lower Generation Bound expression slot

    This function is used in calculating the Lower Generation Bound, which is in turn used to calculate the Bias Negative Revised Limit. It looks at the all values from the Federal Constraints.Peak Valley slot (a value of 2 in the slot represents a daily minimum Request) over the next 32 hours. It returns the timestep that is a daily minimum (has a value of 2) that is closest to the timestep specified in the function argument. This datetime value is used for drawing a line from valley to valley as the lower generation bound.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( LIST sublist IN "PeakValleyList"( timestep + 1.00000000 "hr", "DateMin"( timestep + 32.00000000 "hr", @"Finish Timestep" ) ) ) WITH DATETIME result = @"Finish Timestep" DO\ IF ( ( GET @INDEX 1.00000000 FROM sublist ) == 2.00000000 AND ( GET @INDEX 0.00000000 FROM sublist ) < result )\ THEN\ GET @INDEX 0.00000000 FROM sublist\ ELSE\ result\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "PreviousMaxRequestTime" ( DATETIME timestep )\ RETURN_TYPE DATETIME;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the specified timestep being evaluated
    Returns: DATETIME - the timestep of the most recent daily maximum Federal Request relative to the specified timestep
    Called in:
    - Federal Constraints.Upper Generation Bound expression slot

    This function is used in calculating the Upper Generation Bound, which is in turn used to calculate the Bias Positive Revised Limit. It looks at the all values from the Federal Constraints.Peak Valley slot (a value of 1 in the slot represents a daily maximum Request) over the previous 32 hours. It returns the timestep that is a daily maximum (has a value of 1) that is closest to the timestep specified in the function argument. This datetime value is used for drawing a line from peak to peak as the upper generation bound.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( LIST sublist IN "PeakValleyList"( "DateMax"( timestep - 32.00000000 "hr", @"Start Timestep" ), timestep - 1.00000000 "hr" ) ) WITH DATETIME result = @"Start Timestep" DO\ IF ( ( GET @INDEX 1.00000000 FROM sublist ) == 1.00000000 AND ( GET @INDEX 0.00000000 FROM sublist ) > result )\ THEN\ GET @INDEX 0.00000000 FROM sublist\ ELSE\ result\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "NextMaxRequestTime" ( DATETIME timestep )\ RETURN_TYPE DATETIME;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the specified timestep being evaluated
    Returns: DATETIME - the timestep of the next daily maximum Federal Request relative to the specified timestep
    Called in:
    - Federal Constraints.Upper Generation Bound expression slot

    This function is used in calculating the Upper Generation Bound, which is in turn used to calculate the Bias Positive Revised Limit. It looks at the all values from the Federal Constraints.Peak Valley slot (a value of 1 in the slot represents a daily maximum Request) over the next 32 hours. It returns the timestep that is a daily maximum (has a value of 1) that is closest to the timestep specified in the function argument. This datetime value is used for drawing a line from peak to peak as the upper generation bound.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( LIST sublist IN "PeakValleyList"( timestep + 1.00000000 "hr", "DateMin"( timestep + 32.00000000 "hr", @"Finish Timestep" ) ) ) WITH DATETIME result = @"Finish Timestep" DO\ IF ( ( GET @INDEX 1.00000000 FROM sublist ) == 1.00000000 AND ( GET @INDEX 0.00000000 FROM sublist ) < result )\ THEN\ GET @INDEX 0.00000000 FROM sublist\ ELSE\ result\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "PeakValleyList" ( DATETIME startTimestep, DATETIME endTimestep )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    DATETIME - the start timestep of the time range to evaluate
    DATETIME - the end timestep of the time range to evaluate

    Returns: LIST - a list of lists, each sublist has two elements:
    0: DATETIME - the timestep of the value in element 1 (the primary value that will be used eventually)
    1: NUMERIC - the value in the Federal Constraints.Peak Valley slot at the timestep in element 0
    Called in:
    - PreviousMinRequestTime, PreviousMaxRequestTime, NextMinRequestTime, NextMaxRequestTime

    This list of timestep-value pairs is used by its calling functions to find the timestep of the daily minimum and maximum Federal Requests (element 0 of each sublist) as part of calculating the Revised Bias Limits.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN startTimestep TO endTimestep ) WITH LIST result = { } DO\ APPEND { hour , $ "Federal Constraints.Peak Valley" [hour] } ONTO result\ ENDFOR;\ \ END;\ \ FUNCTION "FederalBias" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate total Federal Bias
    Returns: NUMERIC - the combined Grand Coulee and Chief Joseph Bias at the timestep
    Called in:
    - Federal Bias Limits constriantsl
    - Smoothing Variables goal
    - Bias Daily Curvature Limits goal

    The purpose of this function is to simplify the reading of the Federal Bias constraints. It simply adds together Grand Coulee Constraints.Bias and Chief Joseph Constraints.Bias (two User-defined Variables) at each timestep. The value returned by this function is the value constrained by the Bias Limits and Target Bias Limits constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Grand Coulee Constraints.Bias" [timestep] + $ "Chief Joseph Constraints.Bias" [timestep];\ \ END;\ \ FUNCTION "FederalAccumulatedExchange" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate total Federal Accumulated Exchange
    Returns: NUMERIC - the combined Grand Coulee and Chief Joseph Accumulated Exchange at the timestep
    Called in:
    - Federal Accumulated Exchange Limits goals

    The purpose of this function is to simplify the reading of the Federal Accumulated Exchange constraints. It simply adds together Grand Coulee Constraints.Accumulated Exchange and Chief Joseph Constraints. Accumulated Exchange (two User-defined Variables) at each timestep. The value returned by this function is the value constrained by the Accumulated Exchange Limits and Target Accumulated Exchange Limits constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Grand Coulee Constraints.Accumulated Exchange" [timestep] + $ "Chief Joseph Constraints.Accumulated Exchange" [timestep];\ \ END;\ \ FUNCTION "FederalBiasRampUp" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the Bias Ramp
    Returns: NUMERIC - the difference between the combined Grand Coulee and Chief Joseph Bias at the specified timestep and the previous timestep
    Called in:
    - Federal Bias Ramping Limit constraint

    The purpose of this function is to simplify the reading of the Federal Bias Ramping Limit constraint. It calculates the difference in the value of the FederalBias function at the timestep being referenced and the previous timestep. The value returned by this function must be less than or equal to the value of the Federal Constraints.Bias Ramp Max scalar slot. If bias at the previous timestep is greater than at the current timestep (Bias ramping down), the value returned by this function will be negative and will always be less than the Bias Ramp Max. This case is covered by the FederalBiasRampDown function. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "FederalBias"( timestep ) - "FederalBias"( timestep - 1.00000000 "hr" );\ \ END;\ \ FUNCTION "FederalBiasRampDown" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the Bias Ramp
    Returns: NUMERIC - the difference between the combined Grand Coulee and Chief Joseph Bias at the previous timestep and the specified timestep
    Called in:
    - Federal Bias Ramping Limit constraint

    This function operates similarly to the FederalBiasRampUp function, but it subtracts the value of the FederalBias function at the timestep being referenced from the value at the previous timestep. The value returned by this function must be less than or equal to the value of the Federal Constraints.Bias Ramp Max scalar slot. If bias at the previous timestep is less than at the current timestep (Bias ramping up), the value returned by this function will be negative and will always be less than the Bias Ramp Max. This case is covered in the constraint by the FederalBiasRampUp function. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "FederalBias"( timestep - 1.00000000 "hr" ) - "FederalBias"( timestep );\ \ END;\ \ FUNCTION "BiasCurvature" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate Bias Curvature (the timestep at the end of the range of three timesteps

    Returns: NUMERIC - the Bias Curvature, a value proportional to the second differential of Bias over three timesteps
    Called in:
    - Smoothing Variables goal

    This function is used in defining the Bias Positive Curvature and Bias Negative Curvature user defined variables. These variables are then constrained to limit unreasonable variability in Bias. FederalBias is the sum of Grand Coulee Bias and Chief Joseph Bias at each timestep. The expression represents the difference in the change in Bias from the two previous two-timestep intervals. It could be rewritten as
    (Bias[t] - Bias[t-1]) - (Bias[t-1] - Bias[t-2])";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "FederalBias"( timestep ) + "FederalBias"( timestep - 2.00000000 "hr" ) - 2.00000000 * "FederalBias"( timestep - 1.00000000 "hr" );\ \ END;\ \ FUNCTION "GrandCouleeLagged" ( SLOT slotName, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the quantity that is being lagged, the series slot at the upstream end of the reach
    DATETIME - the timestep at which to calculate the lagged quantity (at the downstream end of the reach)

    Returns: NUMERIC - the specified slot's value from previous timesteps according to the LagTime from Grand Coulee to Chief Joseph
    Called in:
    - Federal Load Shifting goal
    - Elevation Corrected Release and Smoothed Storage expression slots on Chief Joseph Constraints

    This function applies the Lagged function specifically to values being routed from Grand Coulee to Chief Joseph. It is used to lag Grand Coulee Bias for Federal Load Shifting and releases from Grand Coulee as part of the Adjusted Federal Load calculations.
    ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "Lagged"( % "GCL to CHJ", slotName, timestep );\ \ END;\ \ FUNCTION "BiasRoundedToIncrements" ( SLOT posLimSlot, SLOT negLimSlot )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH LIST initialBiasList = FOR ( DATETIME t IN @"Start Timestep" - "MaxItem"( { $ "Federal Constraints.Bias Block Duration Min" [] , $ "Federal Constraints.Bias Cycle Duration Negative" [] , $ "Federal Constraints.Bias Cycle Duration Positive" [] } ) TO @"Finish Timestep" ) WITH LIST result = { } DO\ APPEND { t , IF ( t < @"Start Timestep" )\ THEN\ IF ( IsNaN $ "Federal Constraints.Bias" [t] )\ THEN\ $ "Federal Constraints.Bias NaN" []\ ELSE\ $ "Federal Constraints.Bias" [t]\ ENDIF\ ELSE\ "OptValue"( $ "Federal Constraints.Bias Before Reshaping", t )\ ENDIF } ONTO result\ ENDFOR DO\ MAPLIST ( LIST initBias IN initialBiasList ) DO\ IF ( ( GET @INDEX 1.00000000 FROM initBias ) != $ "Federal Constraints.Bias NaN" [] )\ THEN\ IF ( ( "Ceiling"( GET @INDEX 1.00000000 FROM initBias, $ "Federal Constraints.Bias Increment" [] ) - GET @INDEX 1.00000000 FROM initBias ) < ( GET @INDEX 1.00000000 FROM initBias ) - "Floor"( GET @INDEX 1.00000000 FROM initBias, $ "Federal Constraints.Bias Increment" [] ) )\ THEN\ "Min"( "Ceiling"( GET @INDEX 1.00000000 FROM initBias, $ "Federal Constraints.Bias Increment" [] ), IF ( ( GET @INDEX 0.00000000 FROM initBias ) >= @"Start Timestep" )\ THEN\ "Floor"( posLimSlot [GET @INDEX 0.00000000 FROM initBias], $ "Federal Constraints.Bias Increment" [] )\ ELSE\ 300000.00000000 "MW" COMMENTED_BY "Dummy Value"\ ENDIF ) COMMENTED_BY "We are rounding up."\ ELSE\ "Max"( "Floor"( GET @INDEX 1.00000000 FROM initBias, $ "Federal Constraints.Bias Increment" [] ), IF ( ( GET @INDEX 0.00000000 FROM initBias ) >= @"Start Timestep" )\ THEN\ "Ceiling"( negLimSlot [GET @INDEX 0.00000000 FROM initBias], $ "Federal Constraints.Bias Increment" [] )\ ELSE\ - 300000.00000000 "MW" COMMENTED_BY "Dummy Value"\ ENDIF ) COMMENTED_BY "We are rounding down."\ ENDIF\ ELSE\ $ "Federal Constraints.Bias NaN" []\ ENDIF\ ENDMAPLIST\ ENDWITH;\ \ END;\ \ FUNCTION "ReshapedBias" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH BOOLEAN useRevisedLimits = "OptValue"( $ "Federal Constraints.Bias Use Revised Limits", @"Start Timestep" ) == 1.00000000 DO\ WITH SLOT posLimSlot = IF ( useRevisedLimits )\ THEN\ $ "Federal Constraints.Bias Positive Limit Revised" COMMENTED_BY "Revised to prevent increasing Federal Gen on peak gen hours"\ ELSE\ $ "Federal Constraints.Bias Positive Limit Combined" COMMENTED_BY "Formal input limits; the Combined indicates GCL + CHJ (CHJ will typcially be zero)"\ ENDIF COMMENTED_BY "Determine if we are using the formal input Bias limits or the revised limits from the initialization
    rules that prevent increasing Federal Gen on peak gen hours. Reference the appropriate Bias
    Limits slot." DO\ WITH SLOT negLimSlot = IF ( useRevisedLimits )\ THEN\ $ "Federal Constraints.Bias Negative Limit Revised" COMMENTED_BY "Revised to prevent decreasing Federal Gen on minimum gen hours"\ ELSE\ $ "Federal Constraints.Bias Negative Limit Combined" COMMENTED_BY "Formal input limits; the Combined indicates GCL + CHJ (CHJ will typcially be zero)"\ ENDIF DO\ WITH LIST roundedBias = "BiasRoundedToIncrements"( posLimSlot, negLimSlot ) COMMENTED_BY "First round all OptValue Bias values to the nearest increment (Federal Constraints.Bias
    Increment)" DO\ WITH LIST timesteps = @"Start Timestep" TO @"Finish Timestep" DO\ WITH NUMERIC firstRunPeriodIndex = ( LENGTH roundedBias ) - LENGTH timesteps DO\ WITH LIST indices = "GetNumbers"( firstRunPeriodIndex, ( LENGTH roundedBias ) - 1.00000000, 1.00000000 ) DO\ WITH LIST reshapedBiasWithPreRun = FOR ( NUMERIC i IN indices ) WITH LIST result = roundedBias COMMENTED_BY "Start out with a list of the values before reshaping. We will repalce these in the new list one by
    one." DO\ WITH DATETIME t = GET @INDEX i - firstRunPeriodIndex FROM timesteps DO\ WITH NUMERIC newBias_t = IF ( ( i < firstRunPeriodIndex COMMENTED_BY "Is it a pre-run timestep?" ) COMMENTED_BY "Check if it is a pre-run period or if Bias is already scheduled or if Bias limits are set to zero so that
    we already know its value. In these cases we will just set the reshaped Bias to the already known
    value." OR ( ( "IsInput"( $ "Federal Constraints.Bias Scheduled", t ) AND $ "Federal Constraints.Bias Scheduled" [t] != $ "Federal Constraints.Bias NaN" [] ) OR ( "IsInput"( $ "Grand Coulee Constraints.Bias Scheduled", t ) AND $ "Grand Coulee Constraints.Bias Scheduled" [t] != $ "Federal Constraints.Bias NaN" [] AND ( ( "IsInput"( $ "Chief Joseph Constraints.Bias Scheduled", t ) AND $ "Chief Joseph Constraints.Bias Scheduled" [t] != $ "Federal Constraints.Bias NaN" [] ) OR ( $ "Chief Joseph Constraints.Bias Negative Limit" [t] == 0.00000000 "MW" AND $ "Chief Joseph Constraints.Bias Positive Limit" [t] == 0.00000000 "MW" ) ) ) OR ( "IsInput"( $ "Chief Joseph Constraints.Bias Scheduled", t ) AND $ "Chief Joseph Constraints.Bias Scheduled" [t] != $ "Federal Constraints.Bias NaN" [] AND $ "Grand Coulee Constraints.Bias Negative Limit" [t] == 0.00000000 "MW" AND $ "Grand Coulee Constraints.Bias Positive Limit" [t] == 0.00000000 "MW" ) OR ( posLimSlot [t] == 0.00000000 "MW" AND negLimSlot [t] == 0.00000000 "MW" ) ) )\ THEN\ ( GET @INDEX i FROM result ) COMMENTED_BY "Just use the already known value, so the model is not setting a Bias plan this hour."\ ELSE\ IF ( ( $ "Federal Constraints.Bias Block Duration Min" [] <= 1.00000000 "hr" OR ( i == 0.00000000 ) COMMENTED_BY "Is it the first value in the list? If so we don't know anything about the previous hour, so assume
    we are free to use any value (typically this would be a pre-run timestep, so we would never get
    into this condition)" OR ( ( GET @INDEX i - 1.00000000 FROM result ) == $ "Federal Constraints.Bias NaN" [] ) COMMENTED_BY "The previous hour's bias value is not known (we are on the Start Timestep, and the initial Bias
    was not provided as input), so just assume we are free to use any value. (We should not hit this
    condition once pre-run Bias is provided as an input.)" OR FOR ( NUMERIC h IN "GetNumbers"( 1.00000000, $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr", 1.00000000 ) ) WITH BOOLEAN constantBias = TRUE DO\ IF ( ( GET @INDEX i - h FROM result ) == GET @INDEX i - 1.00000000 FROM result )\ THEN\ constantBias\ ELSE\ FALSE\ ENDIF\ ENDFOR COMMENTED_BY "Have we already completed a full Block Duration Min?" ) COMMENTED_BY "Now determine if Bias can change this hour or if we must continue with the last hour's value in
    order to complete a Mimimum Block Duration" )\ THEN\ WITH NUMERIC averageBlockBiasStartThisHour = "BlockBiasAvgWithLimits"( FOR ( NUMERIC h IN "GetNumbers"( i, "Min"( i + $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000, ( LENGTH roundedBias ) - 1.00000000 ), 1.00000000 ) ) WITH LIST initBiasList = { } DO\ APPEND GET @INDEX h FROM result ONTO initBiasList\ ENDFOR, t, "DateMin"( t + $ "Federal Constraints.Bias Block Duration Min" [] - 1.00000000 "hr", @"Finish Timestep" ), negLimSlot, posLimSlot ) COMMENTED_BY "Calculate the average of Bias before reshaping for a block beginning with this hour. We will
    compare this with the current hour Bias before reshaping and the previous hour reshaped Bias to
    determine if we should start a new block this hour or continue with the previous block." DO\ WITH NUMERIC postiveOrNegativeCycle = IF ( i == 0.00000000 OR ( GET @INDEX i - 1.00000000 FROM result ) == $ "Federal Constraints.Bias NaN" [] )\ THEN\ 0.00000000 COMMENTED_BY "We don't know the previous hour Bias, so just assume Bias can go either positive or negative (we
    shouldin't hit this condition once Bias is provided as pre-run period inputs)"\ ELSE\ WITH LIST posHours = FOR ( NUMERIC h IN "GetNumbers"( 0.00000000, $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - 1.00000000, 1.00000000 ) ) WITH LIST isPosAndHours = { 0.00000000 , 0.00000000 } DO\ { IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - h ) FROM result ) < 0.00000000 "MW" )\ THEN\ 0.00000000 COMMENTED_BY "The hour we were checking was negative, so if there are no more positive hours between this
    hour and the current hour, then we do not need to complete a positive cycle."\ ELSE\ IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - h ) FROM result ) > 0.00000000 "MW" )\ THEN\ 1.00000000 COMMENTED_BY "The hour we are checking is positive, so if there are no negative hours between this hour and the
    current hour, it indicates a positive cycle."\ ELSE\ ( GET @INDEX 0.00000000 FROM isPosAndHours ) COMMENTED_BY "The hour being referenced had a Bias of 0, so just assume the same state as the previous hour."\ ENDIF\ ENDIF COMMENTED_BY "The first element of the list indicates if we were more recently in positive or negative values." , IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - h ) FROM result ) < 0.00000000 "MW" )\ THEN\ 0.00000000 COMMENTED_BY "The hour we are checking has negative Bias, so start the count over."\ ELSE\ ( ( GET @INDEX 1.00000000 FROM isPosAndHours ) + 1.00000000 ) COMMENTED_BY "The hour we are checking has Bias >= 0 MW, so increase the count by one."\ ENDIF COMMENTED_BY "The second element of the list counts how many consecutive hours have constributed toward a
    positive cycle. These are hours with Bias >= 0 MW. This allows hours with 0 Bias to contribute
    toward completing the positive cycle." } COMMENTED_BY "Determine if we are in a postive cycle; go back the number of hours in the Bias Cycle Duration
    Positive and check the reshaped Bias value from each hour"\ ENDFOR DO\ IF ( ( ( GET @INDEX 0.00000000 FROM posHours ) == 1.00000000 AND ( GET @INDEX 1.00000000 FROM posHours ) < $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" ) COMMENTED_BY "We only need to complete a positive cycle if both of the following are true: we had a positive
    hour more recently than the last negative, and the number of consecutve hours >= 0 MW is less
    than the requirement to complete the cycle duration." )\ THEN\ 1.00000000 COMMENTED_BY "Within a positive cycle; Bias must be >= 0 MW to complete the positive cycle"\ ELSE\ WITH LIST negHours = FOR ( NUMERIC h IN "GetNumbers"( 0.00000000, $ "Federal Constraints.Bias Cycle Duration Negative" [] / 1.00000000 "hr" - 1.00000000, 1.00000000 ) ) WITH LIST isNegAndHours = { 0.00000000 , 0.00000000 } DO\ { IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Negative" [] / 1.00000000 "hr" - h ) FROM result ) > 0.00000000 "MW" )\ THEN\ 0.00000000 COMMENTED_BY "The hour we were checking was positive, so if there are no more negative hours between this
    hour and the current hour, then we do not need to complete a negative cycle."\ ELSE\ IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Negative" [] / 1.00000000 "hr" - h ) FROM result ) < 0.00000000 "MW" )\ THEN\ 1.00000000 COMMENTED_BY "The hour we are checking is negative, so if there are no positive hours between this hour and the
    current hour, it indicates a negative cycle."\ ELSE\ ( GET @INDEX 0.00000000 FROM isNegAndHours ) COMMENTED_BY "The hour being referenced had a Bias of 0, so just assume the same state as the previous hour."\ ENDIF\ ENDIF , IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Negative" [] / 1.00000000 "hr" - h ) FROM result ) > 0.00000000 "MW" )\ THEN\ 0.00000000 COMMENTED_BY "The hour we are checking has positive Bias, so start the count over."\ ELSE\ ( ( GET @INDEX 1.00000000 FROM isNegAndHours ) + 1.00000000 ) COMMENTED_BY "The hour we are checking has Bias <= 0 MW, so increase the count by one."\ ENDIF COMMENTED_BY "The second element of the list counts how many consecutive hours have constributed toward a
    negative cycle. These are hours with Bias <= 0 MW. This allows hours with 0 Bias to contribute
    toward completing the negative cycle." }\ ENDFOR COMMENTED_BY "Determine if we are in a negative cycle; go back the number of hours in the Bias Cycle Duration
    Negative and check the reshaped Bias value from each hour" DO\ IF ( ( ( GET @INDEX 0.00000000 FROM negHours ) == 1.00000000 AND ( GET @INDEX 1.00000000 FROM negHours ) < $ "Federal Constraints.Bias Cycle Duration Negative" [] / 1.00000000 "hr" ) COMMENTED_BY "We only need to complete a negative cycle if both of the following are true: we had a negative
    hour more recently than the last positive, and the number of consecutve hours <= 0 MW is less
    than the requirement to complete the cycle duration." )\ THEN\ - 1.00000000 COMMENTED_BY "Within a negative cycle; Bias must be <= 0 MW to complete the negative cycle"\ ELSE\ 0.00000000 COMMENTED_BY "No requirement to complete a positive or negative cycle; Bias can be + or -"\ ENDIF\ ENDWITH\ ENDIF\ ENDWITH\ ENDIF COMMENTED_BY "Determine if we must complete a positive or negative cycle or neither" DO\ IF ( ( postiveOrNegativeCycle == 1.00000000 ) COMMENTED_BY "Check if we are in a positive cycle" )\ THEN\ WITH NUMERIC minBias = 0.00000000 "MW" DO\ WITH NUMERIC remainingPositiveHours = "Min"( FOR ( NUMERIC h IN "GetNumbers"( 0.00000000, $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - 1.00000000, 1.00000000 ) ) WITH NUMERIC remainingHours = 0.00000000 DO\ IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - h ) FROM result ) < 0.00000000 "MW" )\ THEN\ h + 1.00000000\ ELSE\ remainingHours\ ENDIF\ ENDFOR, ( ( LENGTH roundedBias ) - i ) COMMENTED_BY "We don't need to go past the end of the run." ) DO\ IF ( ( remainingPositiveHours * 1.00000000 "hr" < $ "Federal Constraints.Bias Block Duration Min" [] ) COMMENTED_BY "Are the number or hours remaining to complete the positive cycle duration less than the number
    of hours remaining to complete the block at the same value?
    Currently we use the same logic for both outcomes of this check, but that could potentially be
    revised in the future." )\ THEN\ IF ( ( ( "Abs"( ( GET @INDEX i FROM result ) - GET @INDEX i - 1.00000000 FROM result ) < "Abs"( ( GET @INDEX i FROM result ) - averageBlockBiasStartThisHour ) ) AND ( posLimSlot [t] >= GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Also check that the limit on this hour will not prevent us from using the previous hour's reshaped
    Bias. If it would, then we will just start a new block using the new average because we cannot
    continue the previous block." ) COMMENTED_BY "Is this hour's Bias before reshaping closer to the previous hour (TRUE) or the average of the
    block starting with this hour (FALSE)?" )\ THEN\ IF ( ( ( t + $ "Federal Constraints.Bias Block Duration Min" [] <= @"Finish Timestep" ) COMMENTED_BY "Only consider this if the new block would not extend past the end of the run; otherwise we don't
    need to worry about it." AND ( averageBlockBiasStartThisHour > ( GET @INDEX i - 1.00000000 FROM result ) ) COMMENTED_BY "Also only consider this if we would be increasing Bias in the new block. If we would be decreasing
    Bias in the new block, then just set Bias on this hour to the previous hour Bias, and start the new
    block on the next hour." AND ( ( ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Using previous hour's Bias for this hour" + ( ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000 ) * "Floor"( posLimSlot [t + $ "Federal Constraints.Bias Block Duration Min" []], $ "Federal Constraints.Bias Increment" [] ) ) COMMENTED_BY "Using the limit at the end of the new block for all of the remaining hours inthe block" ) < ( averageBlockBiasStartThisHour * ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" ) ) COMMENTED_BY "Total if we started a new block this hour (this already incorporates the positive limits for all hours
    in the block)" ) COMMENTED_BY "If the total using the previous hour for this hour (continuing the current block) and the next block
    limited by the positive limit at the end of the block would be less than the total if we started a
    new block this hour, then limit on the last hour of the new block would overconstrain, so we would
    want to start a new block this hour." ) COMMENTED_BY "Check that the Positive Limit for t+BlockDuration will not overconstraint the next block" )\ THEN\ "Max"( averageBlockBiasStartThisHour, minBias ) COMMENTED_BY "Start a new block this hour because otherwise the negative limit on t+BlockDuration would
    overconstrain the next hours. (This already includes the checks for the positive limit for all hours
    in the block.)"\ ELSE\ "Max"( "Min"( GET @INDEX i - 1.00000000 FROM result, posLimSlot [t] ), minBias ) COMMENTED_BY "Continue with the previous hour's Bias"\ ENDIF COMMENTED_BY "This hour's initial Bias (before reshaping) is closer to the previous hour Bias, so we want to use
    the previous hour Bias, but make the following check first."\ ELSE\ "Max"( averageBlockBiasStartThisHour, minBias ) COMMENTED_BY "This hour's Bias before reshaping is closer the average for the block starting with this hour. (This
    already includes the checks for the positive limit for all hours in the block.)
    In the future, we might want to consider looking at the average going farther out."\ ENDIF\ ELSE\ IF ( ( ( "Abs"( ( GET @INDEX i FROM result ) - GET @INDEX i - 1.00000000 FROM result ) < "Abs"( ( GET @INDEX i FROM result ) - averageBlockBiasStartThisHour ) ) AND ( posLimSlot [t] >= GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Also check that the limit on this hour will not prevent us from using the previous hour's reshaped
    Bias. If it would, then we will just start a new block using the new average because we cannot
    continue the previous block." ) COMMENTED_BY "Is this hour's Bias before reshaping closer to the previous hour (TRUE) or the average of the
    block starting with this hour (FALSE)?" )\ THEN\ IF ( ( ( t + $ "Federal Constraints.Bias Block Duration Min" [] <= @"Finish Timestep" ) COMMENTED_BY "Only consider this if the new block would not extend past the end of the run; otherwise we don't
    need to worry about it." AND ( averageBlockBiasStartThisHour > ( GET @INDEX i - 1.00000000 FROM result ) ) COMMENTED_BY "Also only consider this if we would be increasing Bias in the new block. If we would be decreasing
    Bias in the new block, then just set Bias on this hour to the previous hour Bias, and start the new
    block on the next hour." AND ( ( ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Using previous hour's Bias for this hour" + ( ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000 ) * "Floor"( posLimSlot [t + $ "Federal Constraints.Bias Block Duration Min" []], $ "Federal Constraints.Bias Increment" [] ) ) COMMENTED_BY "Using the limit at the end of the new block for all of the remaining hours inthe block" ) < ( averageBlockBiasStartThisHour * ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" ) ) COMMENTED_BY "Total if we started a new block this hour (this already incorporates the positive limits for all hours
    in the block)" ) COMMENTED_BY "If the total using the previous hour for this hour (continuing the current block) and the next block
    limited by the positive limit at the end of the block would be less than the total if we started a
    new block this hour, then limit on the last hour of the new block would overconstrain, so we would
    want to start a new block this hour." ) COMMENTED_BY "Check that the Positive Limit for t+BlockDuration will not overconstraint the next block" )\ THEN\ "Max"( averageBlockBiasStartThisHour, minBias ) COMMENTED_BY "Start a new block this hour because otherwise the negative limit on t+BlockDuration would
    overconstrain the next hours. (This already includes the checks for the positive limit for all hours
    in the block.)"\ ELSE\ "Max"( "Min"( GET @INDEX i - 1.00000000 FROM result, posLimSlot [t] ), minBias ) COMMENTED_BY "Continue with the previous hour's Bias"\ ENDIF COMMENTED_BY "This hour's initial Bias (before reshaping) is closer to the previous hour Bias, so we want to use
    the previous hour Bias, but make the following check first."\ ELSE\ "Max"( averageBlockBiasStartThisHour, minBias ) COMMENTED_BY "This hour's Bias before reshaping is closer the average for the block starting with this hour. (This
    already includes the checks for the positive limit for all hours in the block.)
    In the future, we might want to consider looking at the average going farther out."\ ENDIF COMMENTED_BY "Remaining hours to complete the positive cycle are greater than the remaining hours to complete
    a block duration at the same value.
    "\ ENDIF\ ENDWITH COMMENTED_BY "Calculate the number of additional hours we must remain >= 0 MW to complete the positive cycle"\ ENDWITH COMMENTED_BY "We are within a positive cycle, so Bias must be >= 0 MW."\ ELSE\ IF ( ( postiveOrNegativeCycle == - 1.00000000 ) COMMENTED_BY "Check if we are in a negative cycle" )\ THEN\ WITH NUMERIC maxBias = 0.00000000 "MW" DO\ WITH NUMERIC remainingNegativeHours = "Min"( FOR ( NUMERIC h IN "GetNumbers"( 0.00000000, $ "Federal Constraints.Bias Cycle Duration Negative" [] / 1.00000000 "hr" - 1.00000000, 1.00000000 ) ) WITH NUMERIC remainingHours = 0.00000000 DO\ IF ( ( GET @INDEX i - ( $ "Federal Constraints.Bias Cycle Duration Positive" [] / 1.00000000 "hr" - h ) FROM result ) > 0.00000000 "MW" )\ THEN\ h + 1.00000000\ ELSE\ remainingHours\ ENDIF\ ENDFOR, ( ( LENGTH roundedBias ) - i ) COMMENTED_BY "We don't need to go past the end of the run." ) DO\ IF ( ( remainingNegativeHours * 1.00000000 "hr" < $ "Federal Constraints.Bias Block Duration Min" [] ) COMMENTED_BY "Are the number or hours remaining to complete the negatice cycle duration less than the number
    of hours remaining to complete the block at the same value?
    Currently we use the same logic for both outcomes of this check, but that could potentially be
    revised in the future." )\ THEN\ IF ( ( ( "Abs"( ( GET @INDEX i FROM result ) - GET @INDEX i - 1.00000000 FROM result ) < "Abs"( ( GET @INDEX i FROM result ) - averageBlockBiasStartThisHour ) ) AND ( negLimSlot [t] <= GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Also check that the limit on this hour will not prevent us from using the previous hour's reshaped
    Bias. If it would, then we will just start a new block using the new average because we cannot
    continue the previous block." ) COMMENTED_BY "Is this hour's Bias before reshaping closer to the previous hour (TRUE) or the average of the
    block starting with this hour (FALSE)?" )\ THEN\ IF ( ( ( t + $ "Federal Constraints.Bias Block Duration Min" [] <= @"Finish Timestep" ) COMMENTED_BY "Only consider this if the new block would not extend past the end of the run; otherwise we don't
    need to worry about it." AND ( averageBlockBiasStartThisHour < ( GET @INDEX i - 1.00000000 FROM result ) ) COMMENTED_BY "Also only consider this if we would be decreasing Bias in the new block. If we would be increasing
    Bias in the new block, then just set Bias on this hour to the previous hour Bias, and start the new
    block on the next hour." AND ( ( ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Using previous hour's Bias for this hour" + ( ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000 ) * "Ceiling"( negLimSlot [t + $ "Federal Constraints.Bias Block Duration Min" []], $ "Federal Constraints.Bias Increment" [] ) ) COMMENTED_BY "Using the limit at the end of the new block for all of the remaining hours inthe block" ) > ( averageBlockBiasStartThisHour * ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" ) ) COMMENTED_BY "Total if we started a new block this hour (this already incorporates the negative limits for all hours
    in the block)" ) COMMENTED_BY "If the total using the previous hour for this hour (continuing the current block) and the next block
    limited by the negative limit at the end of the block would be greater than the total if we started
    a new block this hour, then limit on the last hour of the new block would overconstrain, so we
    would want to start a new block this hour." ) COMMENTED_BY "Check that the Negative Limit for t+BlockDuration will not overconstraint the next block" )\ THEN\ "Min"( averageBlockBiasStartThisHour, maxBias ) COMMENTED_BY "Start a new block this hour because otherwise the negative limit on t+BlockDuration would
    overconstrain the next hours. (This already includes the checks for the negative limit for all hours
    in the block.)"\ ELSE\ "Min"( "Max"( GET @INDEX i - 1.00000000 FROM result, negLimSlot [t] ), maxBias ) COMMENTED_BY "Continue with the previous hour's Bias"\ ENDIF COMMENTED_BY "This hour's initial Bias is closer to the previous hour Bias, so we want to use the previous hour
    Bias, but make the following check first."\ ELSE\ "Min"( averageBlockBiasStartThisHour, maxBias ) COMMENTED_BY "This hour's Bias before reshaping is closer the average for the block starting with this hour. (This
    already includes the checks for the negative limit for all hours in the block.)
    In the future, we might want to consider looking at the average going farther out."\ ENDIF\ ELSE\ IF ( ( ( "Abs"( ( GET @INDEX i FROM result ) - GET @INDEX i - 1.00000000 FROM result ) < "Abs"( ( GET @INDEX i FROM result ) - averageBlockBiasStartThisHour ) ) AND ( negLimSlot [t] <= GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Also check that the limit on this hour will not prevent us from using the previous hour's reshaped
    Bias. If it would, then we will just start a new block using the new average because we cannot
    continue the previous block." ) COMMENTED_BY "Is this hour's Bias before reshaping closer to the previous hour (TRUE) or the average of the
    block starting with this hour (FALSE)?" )\ THEN\ IF ( ( ( t + $ "Federal Constraints.Bias Block Duration Min" [] <= @"Finish Timestep" ) COMMENTED_BY "Only consider this if the new block would not extend past the end of the run; otherwise we don't
    need to worry about it." AND ( averageBlockBiasStartThisHour < ( GET @INDEX i - 1.00000000 FROM result ) ) COMMENTED_BY "Also only consider this if we would be decreasing Bias in the new block. If we would be increasing
    Bias in the new block, then just set Bias on this hour to the previous hour Bias, and start the new
    block on the next hour." AND ( ( ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Using previous hour's Bias for this hour" + ( ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000 ) * "Ceiling"( negLimSlot [t + $ "Federal Constraints.Bias Block Duration Min" []], $ "Federal Constraints.Bias Increment" [] ) ) COMMENTED_BY "Using the limit at the end of the new block for all of the remaining hours inthe block" ) > ( averageBlockBiasStartThisHour * ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" ) ) COMMENTED_BY "Total if we started a new block this hour (this already incorporates the negative limits for all hours
    in the block)" ) COMMENTED_BY "If the total using the previous hour for this hour (continuing the current block) and the next block
    limited by the negative limit at the end of the block would be greater than the total if we started
    a new block this hour, then limit on the last hour of the new block would overconstrain, so we
    would want to start a new block this hour." ) COMMENTED_BY "Check that the Negative Limit for t+BlockDuration will not overconstraint the next block" )\ THEN\ "Min"( averageBlockBiasStartThisHour, maxBias ) COMMENTED_BY "Start a new block this hour because otherwise the negative limit on t+BlockDuration would
    overconstrain the next hours. (This already includes the checks for the negative limit for all hours
    in the block.)"\ ELSE\ "Min"( "Max"( GET @INDEX i - 1.00000000 FROM result, negLimSlot [t] ), maxBias ) COMMENTED_BY "Continue with the previous hour's Bias"\ ENDIF COMMENTED_BY "This hour's initial Bias is closer to the previous hour Bias, so we want to use the previous hour
    Bias, but make the following check first."\ ELSE\ "Min"( averageBlockBiasStartThisHour, maxBias ) COMMENTED_BY "This hour's Bias before reshaping is closer the average for the block starting with this hour. (This
    already includes the checks for the negative limit for all hours in the block.)
    In the future, we might want to consider looking at the average going farther out."\ ENDIF COMMENTED_BY "Remaining hours to complete the negative cycle are greater than the remaining hours to
    complete a block duration at the same value.
    "\ ENDIF\ ENDWITH COMMENTED_BY "Calculate the number of additional hours we must remain <= 0 MW to complete the negative
    cycle"\ ENDWITH COMMENTED_BY "We are within a negative cycle, so Bias must be <= 0 MW."\ ELSE\ IF ( ( ( "Abs"( ( GET @INDEX i FROM result ) - GET @INDEX i - 1.00000000 FROM result ) < "Abs"( ( GET @INDEX i FROM result ) - averageBlockBiasStartThisHour ) ) AND IF ( ( GET @INDEX i - 1.00000000 FROM result ) == 0.00000000 "MW" )\ THEN\ TRUE\ ELSE\ IF ( ( GET @INDEX i - 1.00000000 FROM result ) > 0.00000000 "MW" )\ THEN\ posLimSlot [t] >= GET @INDEX i - 1.00000000 FROM result\ ELSE\ negLimSlot [t] <= GET @INDEX i - 1.00000000 FROM result\ ENDIF\ ENDIF COMMENTED_BY "Also check that the positive or negative limit would not prevent us from continuing the current
    block. If it would, then we will just start a new block this hour." ) COMMENTED_BY "Is this hour's Bias before reshaping closer to the previous hour (TRUE) or the average of the
    block starting with this hour (FALSE)?" )\ THEN\ IF ( averageBlockBiasStartThisHour > 0.00000000 "MW" )\ THEN\ IF ( ( ( t + $ "Federal Constraints.Bias Block Duration Min" [] <= @"Finish Timestep" ) COMMENTED_BY "Only consider this if the new block would not extend past the end of the run; otherwise we don't
    need to worry about it." AND ( averageBlockBiasStartThisHour > ( GET @INDEX i - 1.00000000 FROM result ) ) COMMENTED_BY "Also only consider this if we would be increasing Bias in the new block. If we would be decreasing
    Bias in the new block, then just set Bias on this hour to the previous hour Bias, and start the new
    block on the next hour." AND ( ( ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Using previous hour's Bias for this hour" + ( ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000 ) * "Floor"( posLimSlot [t + $ "Federal Constraints.Bias Block Duration Min" []], $ "Federal Constraints.Bias Increment" [] ) ) COMMENTED_BY "Using the limit at the end of the new block for all of the remaining hours inthe block" ) < ( averageBlockBiasStartThisHour * ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" ) ) COMMENTED_BY "Total if we started a new block this hour (this already incorporates the positive limits for all hours
    in the block)" ) COMMENTED_BY "If the total using the previous hour for this hour (continuing the current block) and the next block
    limited by the positive limit at the end of the block would be less than the total if we started a
    new block this hour, then limit on the last hour of the new block would overconstrain, so we would
    want to start a new block this hour." ) COMMENTED_BY "Check that the Positive Limit for t+BlockDuration will not overconstraint the next block" )\ THEN\ averageBlockBiasStartThisHour COMMENTED_BY "Start a new block this hour because otherwise the positive limit on t+BlockDuration would
    overconstrain the next hours. (This already includes the checks for the positive and negative
    limits for all hours in the block.)"\ ELSE\ ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Continue with the previous hour's Bias"\ ENDIF\ ELSE\ IF ( ( ( t + $ "Federal Constraints.Bias Block Duration Min" [] <= @"Finish Timestep" ) COMMENTED_BY "Only consider this if the new block would not extend past the end of the run; otherwise we don't
    need to worry about it." AND ( averageBlockBiasStartThisHour < ( GET @INDEX i - 1.00000000 FROM result ) ) COMMENTED_BY "Also only consider this if we would be decreasing Bias in the new block. If we would be increasing
    Bias in the new block, then just set Bias on this hour to the previous hour Bias, and start the new
    block on the next hour." AND ( ( ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Using previous hour's Bias for this hour" + ( ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" - 1.00000000 ) * "Ceiling"( negLimSlot [t + $ "Federal Constraints.Bias Block Duration Min" []], $ "Federal Constraints.Bias Increment" [] ) ) COMMENTED_BY "Using the limit at the end of the new block for all of the remaining hours inthe block" ) > ( averageBlockBiasStartThisHour * ( $ "Federal Constraints.Bias Block Duration Min" [] / 1.00000000 "hr" ) ) COMMENTED_BY "Total if we started a new block this hour (this already incorporates the negative limits for all hours
    in the block)" ) COMMENTED_BY "If the total using the previous hour for this hour (continuing the current block) and the next block
    limited by the negative limit at the end of the block would be greater than the total if we started
    a new block this hour, then limit on the last hour of the new block would overconstrain, so we
    would want to start a new block this hour." ) COMMENTED_BY "Check that the Negative Limit for t+BlockDuration will not overconstraint the next block" )\ THEN\ averageBlockBiasStartThisHour COMMENTED_BY "Start a new block this hour because otherwise the negative limit on t+BlockDuration would
    overconstrain the next hours. (This already includes the checks for the positive and negative
    limits for all hours in the block.)"\ ELSE\ ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Continue with the previous hour's Bias"\ ENDIF\ ENDIF COMMENTED_BY "This hour's initial Bias (before reshaping) is closer to the previous hour Bias, so we want to use
    the previous hour Bias, but make the following check first."\ ELSE\ averageBlockBiasStartThisHour COMMENTED_BY "This hour's Bias before reshaping is closer the average for the block starting with this hour. (This
    already includes the checks for the positive and negative limits for all hours in the block.)
    In the future, we might want to consider looking at the average going farther out."\ ENDIF COMMENTED_BY "We do not need to complete a positive nor negative cycle, so Bias could go either direction."\ ENDIF COMMENTED_BY "Not in a positive cycle"\ ENDIF\ ENDWITH\ ENDWITH COMMENTED_BY "Bias is free to change tihs hour."\ ELSE\ ( GET @INDEX i - 1.00000000 FROM result ) COMMENTED_BY "Bias must stay the same this hour to meet the block duration."\ ENDIF\ ENDIF DO\ SUB newBias_t @INDEX i OF ( result COMMENTED_BY "Replace the Bias value before reshaping with the new, reshaped value" )\ ENDWITH\ ENDWITH\ ENDFOR COMMENTED_BY "Loop through all of the Bias values one at a time and reshape them according to the logic below" DO\ FOR ( NUMERIC i IN "GetNumbers"( 0.00000000, firstRunPeriodIndex - 1.00000000, 1.00000000 ) ) WITH LIST result = reshapedBiasWithPreRun DO\ REMOVE ITEM @INDEX 0.00000000 FROM result\ ENDFOR COMMENTED_BY "Remove the elements from the list that correspond to pre-run timesteps so that we are just
    returning a list of reshaped Bias values for the timesteps within the run period"\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH\ ENDWITH;\ \ END;\ \ FUNCTION "BlockBiasAvgWithLimits" ( LIST initBiasList, DATETIME startTime, DATETIME endTime, SLOT negLimSlot, SLOT posLimSlot )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "Min"( "Max"( "RoundToIncrement"( FOR ( NUMERIC initBias IN initBiasList ) STAT_AVE\ initBias\ ENDFOR, $ "Federal Constraints.Bias Increment" [] ), "Ceiling"( "MaxItem"( "GetSlotVals"( negLimSlot, startTime, endTime ) ), $ "Federal Constraints.Bias Increment" [] ) ), "Floor"( "MinItem"( "GetSlotVals"( posLimSlot, startTime, endTime ) ), $ "Federal Constraints.Bias Increment" [] ) );\ \ END;\ \ END;\ \ UTILITY_GROUP "Protection Level Flow Functions";\ DESCRIPTION "Functions in this group are called in constraints related to Protection Level Flow at Vernita Bar or in expression slots related to those constraints. ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "PreHatchPeriod" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are in the Pre-Hatch Period
    Called in:
    - Vernita Bar Protection Level Flows goal

    The purpose of this function is to simplify the reading of the Maximim of 8 Consecutive Hours Below the PLF During PreHatch Period constraint. The function calls the ActiveSeasonFromDates function to create a list of Pre-Hatch Period timesteps during the run period. If the run period is not during the Pre-Hatch Period the list will be empty and the constraint will be ignored. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ActiveSeasonFromDates"( "PreHatch Period" );\ \ END;\ \ FUNCTION "PostHatchPeriod" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are in the Post-Hatch Period
    Called in:

    The function creates a list of Post-Hatch Period timesteps during the run period. If the run period is not during the Post-Hatch Period the list will be empty. The function first checks if the Dates.PostHatch Period Operations slot contains both the start and end dates for the period. If it does, then these dates are used. If it does not contain dates (displays DT NaN) the dates from the Default slot are used.

    The typical conditional statement to determine if a timestep is within a specified period checks if the timestep is later in the year than (greater than or equal to) the start date and earlier in the year than (less than or equal to) the end date. The Post-Hatch Period typically spans the start of a new year, so this cannot be done directly. Instead the function checks if the timestep is between the start of the Post-Hatch Period and the end of the year (greater than or equal to the Post-Hatch Period start date and less than or equal to December 31) or between the start of the year and the end of the Post-Hatch Period (greater than or equal to January 1 and less than or equal to the end date). If the timestep is within one of these two periods it is added to the PostHatchPeriod list. Otherwise the list remains unchanged. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN $ "Dates.PostHatch Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.PostHatch Period Operations" [1.00000000, 0.00000000] )\ THEN\ FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST postHatch = { } DO\ IF ( timestep >= "NumberToDate"( $ "Dates.PostHatch Period Operations" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"1:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.PostHatch Period Operations" [1.00000000, 0.00000000] ) ) )\ THEN\ APPEND timestep ONTO postHatch\ ELSE\ postHatch\ ENDIF\ ENDFOR\ ELSE\ FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST postHatch = { } DO\ IF ( timestep >= "NumberToDate"( $ "Dates.PostHatch Period Default" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"1:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.PostHatch Period Default" [1.00000000, 0.00000000] ) ) )\ THEN\ APPEND timestep ONTO postHatch\ ELSE\ postHatch\ ENDIF\ ENDFOR\ ENDIF;\ \ END;\ \ FUNCTION "IsPostHatchPeriod" ( DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the timestep is within the Post-Hatch Period
    Called in:
    - Vernita Bar Protection Level Flows goal
    - PLFDefaultCalc function

    This function performs the same logical check as the PostHatchPeriod function, but instead of adding the timestep to a list, it simply returns a value of TRUE if the timestep is within the Post-Hatch Period. If the return value is false, the constraint will be ignored.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN $ "Dates.PostHatch Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.PostHatch Period Operations" [1.00000000, 0.00000000] )\ THEN\ timestep >= "NumberToDate"( $ "Dates.PostHatch Period Operations" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"1:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.PostHatch Period Operations" [1.00000000, 0.00000000] ) )\ ELSE\ timestep >= "NumberToDate"( $ "Dates.PostHatch Period Default" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"1:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.PostHatch Period Default" [1.00000000, 0.00000000] ) )\ ENDIF;\ \ END;\ \ FUNCTION "IsRearingPeriod" ( DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the timestep is within the Rearing Period
    Called in:
    - Vernita Bar Protection Level Flows goal

    This function performs the same logical check as the IsEmergencePeriod function, but instead of adding the timestep to a list, it simply returns a value of TRUE if the timestep is within the Rearing Period. If the return value is false, the constraint will be ignored.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN $ "Dates.Rearing Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.Rearing Period Operations" [1.00000000, 0.00000000] )\ THEN\ ( timestep >= "NumberToDate"( $ "Dates.Rearing Period Operations" [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( $ "Dates.Rearing Period Operations" [1.00000000, 0.00000000] ) )\ ELSE\ timestep >= "NumberToDate"( $ "Dates.Rearing Period Default" [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( $ "Dates.Rearing Period Default" [1.00000000, 0.00000000] )\ ENDIF;\ \ END;\ \ FUNCTION "EmergencePeriod" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are in the Emergence Period
    Called in:

    The function calls the ActiveSeasonFromDates function to create a list of Emergence Period timesteps during the run period. If the run period is not during the Emergence Period the list will be empty.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ActiveSeasonFromDates"( "Emergence Period" );\ \ END;\ \ FUNCTION "IsEmergencePeriod" ( DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the timestep is within the Emergence Period
    Called in:
    - Vernita Bar Protection Level Flows goal

    This function performs the same logical check as the PostHatchPeriod function, but instead of adding the timestep to a list, it simply returns a value of TRUE if the timestep is within the Emergence Period. If the return value is false, the constraint will be ignored.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN $ "Dates.Emergence Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.Emergence Period Operations" [1.00000000, 0.00000000] )\ THEN\ ( timestep >= "NumberToDate"( $ "Dates.Emergence Period Operations" [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( $ "Dates.Emergence Period Operations" [1.00000000, 0.00000000] ) )\ ELSE\ timestep >= "NumberToDate"( $ "Dates.Emergence Period Default" [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( $ "Dates.Emergence Period Default" [1.00000000, 0.00000000] )\ ENDIF;\ \ END;\ \ FUNCTION "PLFDefaultCalc" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate PLF
    Returns: NUMERIC - the Protection Level Flow value (kcfs)
    Called in:
    - Vernita Bar Constraints.PLF Default expression slot

    This function determines the value to be used for Protection Level Flow (minimum flow for Vernita Bar.Outflow) if no value is entered in the PLF Manual slot and stores the value in the Vernita Bar Constraints.PLF Default slot. This value is later used by Protection Level Flow constraints.

    The function first calls the IsPostHatchPeriod function to check if the timestep is in the Post-Hatch Period. If it is, it then checks if both start and end dates have been entered in Dates.PostHatch 36 to 50 kcfs Period Operations (the time when hatching has occurred at Redds in the 36 to 50 kcfs zone, based on the Hanford Reach Agreement C.3.(a)). If there are dates in the slot, it checks if the timestep is within those dates, and if it is the PLF Default value is set to 50 kcfs (Vernita Bar Constraints.PostHatch 36 to 50 kcfs Period PLF scalar slot). If there are no dates in the slot or if the timestep is not within the start and end date, the function moves on to check a Vernita Bar Constraints.Critical Elevation Flow Manual value has been entered. If a Manual value has been entered, it is set as the PLF Default value for the timestep. If there is not a Manual value, the Default value (65 ckfs) is used.

    If the timestep is not in the Post-Hatch Period, the function then calls the IsActiveSeasonFromDates function to check if it is in the Emergence Period. If it is, the same checks are made for the Emergence 36 to 50 kcfs Period as for the Post-Hatch Period (Hanford Reach Agreement C.4.(a)), and then the function checks for the Critical Elevation Flow value.

    If the timestep is in neither the Post-Hatch nor Emergence Periods, the function calls the IsActiveSeasonFromDates function to check if it is in the Pre-Hatch Period. If it is in the Pre-Hatch Period, it checks for a Critical Elevation Flow Manual value, and if one is present, it sets this as the PLF Default value. If no Manual value is present it uses the Default value.

    Finally if none of these conditions are met, the PLF Default value is set to the Vernita Bar Constraints.Vernita Bar Min Flow value (36 kcfs). ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "IsPostHatchPeriod"( timestep ) )\ THEN\ IF ( NOT IsNaN $ "Dates.PostHatch 36 to 50 kcfs Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.PostHatch 36 to 50 kcfs Period Operations" [1.00000000, 0.00000000] AND ( timestep >= "NumberToDate"( $ "Dates.PostHatch 36 to 50 kcfs Period Operations" [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( $ "Dates.PostHatch 36 to 50 kcfs Period Operations" [1.00000000, 0.00000000] ) ) )\ THEN\ $ "Vernita Bar Constraints.PostHatch 36 to 50 kcfs Period PLF" []\ ELSE\ IF ( NOT IsNaN $ "Vernita Bar Constraints.Critical Elevation Flow Manual" [] )\ THEN\ $ "Vernita Bar Constraints.Critical Elevation Flow Manual" []\ ELSE\ $ "Vernita Bar Constraints.Critical Elevation Flow Default" []\ ENDIF\ ENDIF\ ELSE\ IF ( "IsActiveSeasonFromDates"( "Emergence Period", timestep ) )\ THEN\ IF ( NOT IsNaN $ "Dates.Emergence 36 to 50 kcfs Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.Emergence 36 to 50 kcfs Period Operations" [1.00000000, 0.00000000] AND ( timestep >= "NumberToDate"( $ "Dates.Emergence 36 to 50 kcfs Period Operations" [0.00000000, 0.00000000] ) AND timestep <= "NumberToDate"( $ "Dates.Emergence 36 to 50 kcfs Period Operations" [1.00000000, 0.00000000] ) ) )\ THEN\ $ "Vernita Bar Constraints.Emergence 36 to 50 kcfs Period PLF" []\ ELSE\ IF ( NOT IsNaN $ "Vernita Bar Constraints.Critical Elevation Flow Manual" [] )\ THEN\ $ "Vernita Bar Constraints.Critical Elevation Flow Manual" []\ ELSE\ $ "Vernita Bar Constraints.Critical Elevation Flow Default" []\ ENDIF\ ENDIF\ ELSE\ IF ( "IsActiveSeasonFromDates"( "PreHatch Period", timestep ) )\ THEN\ IF ( NOT IsNaN $ "Vernita Bar Constraints.Critical Elevation Flow Manual" [] )\ THEN\ $ "Vernita Bar Constraints.Critical Elevation Flow Manual" []\ ELSE\ $ "Vernita Bar Constraints.Critical Elevation Flow Default" []\ ENDIF\ ELSE\ $ "Vernita Bar Constraints.Vernita Bar Min Flow" []\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "PLFCalc" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate PLF
    Returns: NUMERIC - the Protection Level Flow value (kcfs)
    Called in:
    - Vernita Bar Constraints.Protection Level Flow expression slot

    This function allows for the PLF value to be set manually so that it will override any Default value. The function simply checks if a value has been entered in the Vernita Bar Constraints.PLF Manual slot at each timestep. If there is a value in the Manual slot, this value is set in the Protection Level Flow expression slot. If there is no value in the Manual slot (displays NaN), the value in the Default slot calculated by the PLFDefault function is used. Note that typically Special Operations slots are used to set PLF constraint values. Any values in the Priest Rapids Constraints.Special Operations Min Outflow slot will override any values in this slot.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN $ "Vernita Bar Constraints.PLF Manual" [timestep] )\ THEN\ $ "Vernita Bar Constraints.PLF Manual" [timestep]\ ELSE\ $ "Vernita Bar Constraints.PLF Default" [timestep]\ ENDIF;\ \ END;\ \ FUNCTION "VernitaBarEightHourDryCheck" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep for which the expression is being evaluated
    Returns: NUMERIC - 9,999.999 if 8 consecutive hours are exceeded, 0 if Vernita Bar flows are in compliance
    Called in: Vernita Bar Constraints.8 Hour Dry Check expression slot

    This function performs a post-run check to see that the constraint to limit the time below the Protection Level Flow during the Prehatch Period to 8 consecutive hours actually resulted in at least one timestep in every 8 hour period with a Vernita Bar Flow above the PLF. The constraint in the Optimization Goal Set can only approximate this by setting a minimum cumulative outflow value for every 9 hour window, and thus the model constraint could potentially, though not likely, be met and still allow more than eight consecutive hours below the PLF. This function checks if the model flows are in compliance with the actual policy (Hanford Reach Agreement C.2). For each timestep it looks at the Vernita Bar.Outflow values set in the Post-optimization Simulation for the previous 8 timesteps and the current timestep (total of 9 hours). It identifies the largest flow value from these nine hours using the RiverWare Predefined MaxItem function. Then it checks if this max flow from the previous 9 hours is less than the PLF. If the highest flow from nine consecutive hours is less than the PLF, and thus all flows for 9 consecutive hours are less than the PLF, the policy has been violated, and the function sets a value of 9,999.999 in the expression slot (the value of 9,999.999 will be set at the timestep of the ninth hour below the PLF) to indicate that there has been a violation and operations may need to be modified from the Optimization results to avoid a violation during operations. In all cases that the policy has not been violated (the max flow in the 9 hour window is greater than or equal to the PLF) the value in the expression slot is set to 0. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "MaxItem"( "GetSlotVals"( $ "Vernita Bar.Outflow", @"t" - 8.00000000 "hr", @"t" ) ) < $ "Vernita Bar Constraints.Protection Level Flow" [] )\ THEN\ 9999.99900000\ ELSE\ 0.00000000\ ENDIF;\ \ END;\ \ END;\ \ UTILITY_GROUP "Reverse Load Factoring Functions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "SpawningPeriodDaylightHours" ( DATETIME start, DATETIME end )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Returns: LIST of timesteps between sunrise and sunset in the during the Spawning Period
    Called in:
    -Spawning Period Flows goal
    -Spawning Period Target Max Flow goal

    This function creates a list of timesteps during which the Vernita Bar flow must be between 55 and 70 kcfs. It first calls the ActiveSeasonFromDates function to create a list of timesteps in the run period that are in the Spawning Period. If it is not the Spawning Period, this list will be empty. If the run period is during the Spawning Period, the function will check the Dates.Sunrise and Sunset Operations slot for each timestep. If there are times set (does NOT show DT NaN) these times will be used as the reference Sunrise and Sunset times. If it does not contain times (shows DT NaN) the times on Dates.Sunrise and Sunset Default for the given day will be used as the reference times. NOTE: The Sunrise and Sunset slots are Periodic Slots. If there are values at some dates in the Operations slot even though not at the dates of timesteps being evaluated, the function will interpolate between these values to generate a value. If the Operations slot is not going to be used, it is necessary to clear all values at all dates so that all cells show DT NaN.

    The function then checks if the timestep falls between the reference Sunrise and Sunset times, and if it does, it adds the timestep to the list of timesteps for which the constraint will be in effect. If the timestep is not between Sunrise and Sunset, the list remains unchanged. Because Sunrise and Sunset will not typically be on the hour, the function actually checks if the time one hour after (timestep + 1 hr) is greater than or equal to the Sunrise time and if the time one hour before (timestep - 1 hr) is less than or equal to Sunset time. This has the effect of rounding down to the earlier whole hour for Sunrise and rounding up to the later whole hour for Sunset to be more conservative.

    The times on the Sunrise and Sunset periodic slots are actually stored as Numeric data types as opposed to Datetime data types. The RiverWare predefined function NumberToDate is used in this function to convert these Numeric values to Datetime values. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH SLOT spawningSeasonSlot = IF ( NOT IsNaN $ "Dates.Spawning Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.Spawning Period Operations" [1.00000000, 0.00000000] )\ THEN\ $ "Dates.Spawning Period Operations"\ ELSE\ $ "Dates.Spawning Period Default"\ ENDIF DO\ FOR ( DATETIME t IN start TO end ) WITH LIST spawningDaylightHours = { } DO\ WITH SLOT sunriseSunsetSlot = IF ( NOT IsNaN $ "Dates.Sunrise and Sunset Operations" [t, "Sunrise Time"] AND NOT IsNaN $ "Dates.Sunrise and Sunset Operations" [t, "Sunset Time"] )\ THEN\ $ "Dates.Sunrise and Sunset Operations"\ ELSE\ $ "Dates.Sunrise and Sunset Default"\ ENDIF DO\ IF ( t >= "NumberToDate"( spawningSeasonSlot [0.00000000, 0.00000000] ) AND t <= "NumberToDate"( spawningSeasonSlot [1.00000000, 0.00000000] ) AND t + 1.00000000 "hr" > "NumberToDate"( sunriseSunsetSlot [t, "Sunrise Time"] ) AND t - 1.00000000 "hr" < "NumberToDate"( sunriseSunsetSlot [t, "Sunset Time"] ) )\ THEN\ APPEND t ONTO spawningDaylightHours\ ELSE\ spawningDaylightHours\ ENDIF\ ENDWITH\ ENDFOR\ ENDWITH;\ \ END;\ \ FUNCTION "IsSpawningPeriod" ( DATETIME t )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Returns: LIST of timesteps between sunrise and sunset in the during the Spawning Period
    Called in:
    -Spawning Period Flows goal
    -Spawning Period Target Max Flow goal

    This function creates a list of timesteps during which the Vernita Bar flow must be between 55 and 70 kcfs. It first calls the ActiveSeasonFromDates function to create a list of timesteps in the run period that are in the Spawning Period. If it is not the Spawning Period, this list will be empty. If the run period is during the Spawning Period, the function will check the Dates.Sunrise and Sunset Operations slot for each timestep. If there are times set (does NOT show DT NaN) these times will be used as the reference Sunrise and Sunset times. If it does not contain times (shows DT NaN) the times on Dates.Sunrise and Sunset Default for the given day will be used as the reference times. NOTE: The Sunrise and Sunset slots are Periodic Slots. If there are values at some dates in the Operations slot even though not at the dates of timesteps being evaluated, the function will interpolate between these values to generate a value. If the Operations slot is not going to be used, it is necessary to clear all values at all dates so that all cells show DT NaN.

    The function then checks if the timestep falls between the reference Sunrise and Sunset times, and if it does, it adds the timestep to the list of timesteps for which the constraint will be in effect. If the timestep is not between Sunrise and Sunset, the list remains unchanged. Because Sunrise and Sunset will not typically be on the hour, the function actually checks if the time one hour after (timestep + 1 hr) is greater than or equal to the Sunrise time and if the time one hour before (timestep - 1 hr) is less than or equal to Sunset time. This has the effect of rounding down to the earlier whole hour for Sunrise and rounding up to the later whole hour for Sunset to be more conservative.

    The times on the Sunrise and Sunset periodic slots are actually stored as Numeric data types as opposed to Datetime data types. The RiverWare predefined function NumberToDate is used in this function to convert these Numeric values to Datetime values. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH SLOT spawningSeasonSlot = IF ( NOT IsNaN $ "Dates.Spawning Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.Spawning Period Operations" [1.00000000, 0.00000000] )\ THEN\ $ "Dates.Spawning Period Operations"\ ELSE\ $ "Dates.Spawning Period Default"\ ENDIF DO\ t >= "NumberToDate"( spawningSeasonSlot [0.00000000, 0.00000000] ) AND t <= "NumberToDate"( spawningSeasonSlot [1.00000000, 0.00000000] )\ ENDWITH;\ \ END;\ \ FUNCTION "IsDaylightHour" ( DATETIME t )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the argument is between sunrise and sunset for the given day
    Called in:
    - Spawning Period Flows goal and related expression slots on Vernita Bar Constraints data object

    The function first checks if times have been entered in the Dates.Sunrise and Sunset Operations slot. If there are times entered, it then checks if the specified timestep is after Sunrise and before Sunset. If there are no times entered in the Operations slot, the Default slot will be used. NOTE: The Sunrise and Sunset slots are Periodic Slots. If there are values at some dates in the Operations slot even though not at the dates of timesteps being evaluated, the function will interpolate between these values to generate a value. If the Operations slot is not going to be used, it is necessary to clear all values at all dates so that all cells show DT NaN. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ WITH SLOT sunriseSunsetSlot = IF ( NOT IsNaN $ "Dates.Sunrise and Sunset Operations" [t, "Sunrise Time"] AND NOT IsNaN $ "Dates.Sunrise and Sunset Operations" [t, "Sunset Time"] )\ THEN\ $ "Dates.Sunrise and Sunset Operations"\ ELSE\ $ "Dates.Sunrise and Sunset Default"\ ENDIF DO\ t >= "NumberToDate"( sunriseSunsetSlot [t, "Sunrise Time"] ) AND t <= "NumberToDate"( sunriseSunsetSlot [t, "Sunset Time"] )\ ENDWITH;\ \ END;\ \ END;\ \ UTILITY_GROUP "CJAD Functions";\ DESCRIPTION "All of the functions in this Global Functions Group are called by Chief Joseph Accumulated Deficiency constraints, constraints for Drafting related to CJAD, or expression slots related to these constraints. ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "CJADPeriod" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are within the CJAD Period and end at hour 24:00
    Called in:
    - Chief Joseph Accumulated Deficiency goals
    - Vernita Bar Protection Level Flows and Drafting policy group

    The purpose of this function is to simplify the reading of the CJAD and Drafting constraints. The function creates a list of timesteps during the run period that are within the CJAD Period and are at midnight (when the CJAD constraints must be met). If the run period is not during the CJAD Period, the list will be empty and the constraint will be ignored. The function first checks if the Dates.CJAD Period Operations slot contains both the start and end dates for the period. If it does, then these dates are used. If it does not contain dates (displays DT NaN) the dates from the Default slot are used.

    The typical conditional statement to determine if a timestep is within a specified period checks if the timestep is later in the year than (greater than or equal to) the start date and earlier in the year than (less than or equal to) the end date. The CJAD Period typically spans the start of a new year, so this cannot be done directly. Instead the function checks if the timestep is between the start of the CJAD Period and the end of the year (greater than or equal to the CJAD Period start date and less than or equal to December 31) or between the start of the year and the end of the CJAD Period (greater than or equal to January 1 and less than or equal to the end date). If the timestep is within one of these two periods and if the timestep ends at hour 24:00, it is added to the CJADPeriod list. Otherwise the list remains unchanged. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN "EndOfDay"( @"Start Timestep" TO @"Finish Timestep" ) ) WITH LIST CJADdays = { } DO\ IF ( NOT IsNaN $ "Dates.CJAD Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.CJAD Period Operations" [1.00000000, 0.00000000] )\ THEN\ IF ( timestep == @"24:00:00" AND ( timestep >= "NumberToDate"( $ "Dates.CJAD Period Operations" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"0:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.CJAD Period Operations" [1.00000000, 0.00000000] ) ) ) )\ THEN\ APPEND timestep ONTO CJADdays\ ELSE\ CJADdays\ ENDIF\ ELSE\ IF ( timestep == @"24:00:00" AND ( timestep >= "NumberToDate"( $ "Dates.CJAD Period Default" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"0:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.CJAD Period Default" [1.00000000, 0.00000000] ) ) ) )\ THEN\ APPEND timestep ONTO CJADdays\ ELSE\ CJADdays\ ENDIF\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "CJADIIPeriod" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are within the CJAD II Period and end at hour 24:00
    Called in:
    - Chief Joseph Accumulated Deficiency goals
    - Vernita Bar Protection Level Flows and Drafting policy group

    The purpose of this function is to simplify the reading of the CJAD and Drafting constraints. The function calls the ActiveSeasonEndOfDayFromDates function to create a list of CJAD II Period timesteps ending at hour 24:00 during the run period. If the run period is not during the CJAD II Period the list will be empty and the constraint will be ignored. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ActiveSeasonEndOfDayFromDates"( "CJAD II Period" );\ \ END;\ \ FUNCTION "IsCJADPeriod" ( DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the timestep is within the CJAD Period
    Called in:
    - CJADCalcPreRun function
    - CJADCalcPostRun function
    - CJAD goals
    - Federal Generation Requests goal

    This function performs the same logical check as the CJADPeriod function, but instead of adding the timestep to a list, it simply returns a value of TRUE if the timestep is within the CJAD Period. Also it returns a value of TRUE for all timesteps in the CJAD Period, not just those ending at hour 24:00 (the only timesteps included in the list generated by the CJADPeriod function). The CJADCalc functions calls this function to determine if it is necessary to make a CJAD calculation and set it in the appropriate expression slot. If this function returns a value of FALSE, the CJADCalc functions will simply return a value of 0. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN $ "Dates.CJAD Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.CJAD Period Operations" [1.00000000, 0.00000000] )\ THEN\ timestep >= "NumberToDate"( $ "Dates.CJAD Period Operations" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"1:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.CJAD Period Operations" [1.00000000, 0.00000000] ) )\ ELSE\ timestep >= "NumberToDate"( $ "Dates.CJAD Period Default" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"1:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.CJAD Period Default" [1.00000000, 0.00000000] ) )\ ENDIF;\ \ END;\ \ FUNCTION "IsCJADIIPeriod" ( DATETIME timestep )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the timestep is within the CJAD II Period
    Called in:
    - CJADCalcPreRun function
    - CJADCalcPostRun function
    - CJAD goals
    - Federal Generation Requests goal

    This function operates the same as the IsCJADPeriod function and is called by the same functions. It calls the IsActiveSeasonFromDates function to check the appropriate CJAD II slots on the Dates Data Object. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "IsActiveSeasonFromDates"( "CJAD II Period", timestep );\ \ END;\ \ FUNCTION "CJADWednesdayNoon" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are within the CJAD Period or the CJAD II Period and end at hour 12:00 on Wednesday
    Called in:
    - Chief Joseph Accumulated Deficiency goals

    The CJAD policies require CJAD to return to zero by noon on Wednesday (Hanford Reach Agreement D.4) along with constraints on CJAD at midnight of each day. This function creates the list of timesteps for the Wednesday Noon constraint to be evaluated. It operates similarly to the CJADPeriod function except that it checks that the timestep is at the hour ending at 12:00:00 on a Wednesday (as opposed to 24:00:00 on any day in the CJADPeriod function). Also, it groups the CJAD and CJAD II Periods together by checking if the timestep is between the start of the CJAD Period and the end of the CJAD II Period (with the appropriate adjustment for the beginning of the year as explained in the description of the CJADPeriod function). ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST CJADWedNoon = { } DO\ IF ( NOT IsNaN $ "Dates.CJAD Period Operations" [0.00000000, 0.00000000] AND NOT IsNaN $ "Dates.CJAD II Period Operations" [1.00000000, 0.00000000] )\ THEN\ IF ( timestep == @"12:00:00 Wednesday" AND ( timestep >= "NumberToDate"( $ "Dates.CJAD Period Operations" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"0:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.CJAD II Period Operations" [1.00000000, 0.00000000] ) ) ) )\ THEN\ APPEND timestep ONTO CJADWedNoon\ ELSE\ CJADWedNoon\ ENDIF\ ELSE\ IF ( timestep == @"12:00:00 Wednesday" AND ( timestep >= "NumberToDate"( $ "Dates.CJAD Period Default" [0.00000000, 0.00000000] ) AND timestep <= @"24:00:00 December 31" OR ( timestep >= @"0:00:00 January 1" AND timestep <= "NumberToDate"( $ "Dates.CJAD II Period Default" [1.00000000, 0.00000000] ) ) ) )\ THEN\ APPEND timestep ONTO CJADWedNoon\ ELSE\ CJADWedNoon\ ENDIF\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "Holiday" ( DATETIME day )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep being referenced
    Returns: BOOLEAN - True if the timestep has been specified as a holiday
    Called in:
    - AllowableCJAD function

    This function is called by the AllowableCJAD function to check if a day is a holiday and thus the Allowable CJAD at the end of the day is equal to the Sunday Allowable CJAD (854 kcfsh based on the Hanford Reach Agreement D.3). The function checks the Dates.Holiday slot for each timestep. If there is a value of 1 in the Holiday slot at the timestep, the function returns TRUE. The day is a designated holiday. If there is no value (displays NaN) or a value other than 1, the function returns FALSE. The day is not a holiday. NOTE: For the AllowableCJAD function, it is necessary for the timestep at hour 24:00 in Dates.Holiday to be set to 1 for a holiday. If this final timestep of the day is not set to 1, the day will not be treated as a holiday by the function. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ NOT IsNaN $ "Dates.Holiday" [day] AND $ "Dates.Holiday" [day] == 1.00000000;\ \ END;\ \ FUNCTION "SumSideflowsDownstreamCHJ" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to sum sideflows
    Returns: NUMERIC - The total sum of Side Inflows (kcfs) from all six tributaries downstream of Chief Joseph at the specified timestep
    Called in:
    - SumSideflowsToVolDownstreamCHJ
    - Priest Rapids Constraints.Outflow Daily Target

    This function adds up the six tributary flows in the system downstream of Chief Joseph at the given timestep. This value is then used in calculating CJAD quantities as well as calculating the Outflow Daily Target for Priest Rapids.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( SLOT sideflow IN { $ "Okanogan River.Inflow" , $ "Methow River.Inflow" , $ "Chelan River.Inflow" , $ "Entiat River.Inflow" , $ "Wenatchee River.Inflow" , $ "Crab Creek.Inflow" } ) STAT_SUM\ sideflow [timestep]\ ENDFOR;\ \ END;\ \ FUNCTION "SumSideflowsToVolDownstreamCHJ" ( DATETIME start, DATETIME end )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    DATETIME - the start timestep of the period for flows to be summed
    DATETIME - the end timestep of the period for flows to be summed

    Returns: NUMERIC - the total flow volume (kcfsh) of the six tributaries downstream of Chief Joseph over the specified time period
    Called in:
    - CHJDeficiencyPreRun function
    - CHJDeficiencyPostRun function
    - CJAD Calc functions
    - CJAD goals

    This function takes the value calculated by the SumSideflowsDownstramCHJ function at each timestep in the range specified and multiplies it by 1 hour to convert to a volume (kcfsh). It then sums the flow volumes for each timestep in the range. The value is used in calculating CJAD quantities. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN start TO end ) STAT_SUM\ "SumSideflowsDownstreamCHJ"( timestep ) * 1.00000000 "hr"\ ENDFOR;\ \ END;\ \ FUNCTION "CHJDeficiencyPreRun" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate CJAD
    Returns: NUMERIC - the amount (kcfsh) that the Chief Joseph Request (as flow) plus Side Inflows is less than the Protection Level Flow at the specified timestep
    Called in:
    - CJADCalcPreRun function

    This function calculates at a single timestep the amount that Chief Joseph Constraints.Initial Request As Flow plus the Side Inflows is less than the PLF. If the Chief Joseph Initial Request plus Side Inflows exceeds the PLF the value returned by this function will be negative. The Chief Joseph Initial Request as Flow is calculated based on the input Initial Uncoordinated Request and the Power Coefficient Approximation. Side Inflows are forecasted value and are an input. All flow values in this function are converted to volumes (kcfsh). All values in this function are known prior to the run, and thus the function can be evaluated for all timesteps at the beginning of the run. The values returned by this function at each timestep are aggregated by the CJADCalcPreRun function to calculate the CJAD Prerun Estimate which is referenced by the CJAD constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "FlowToVolume"( $ "Vernita Bar Constraints.Protection Level Flow" [timestep], timestep ) - "FlowToVolume"( $ "Chief Joseph Constraints.Initial Request As Flow" [timestep], timestep ) - "SumSideflowsToVolDownstreamCHJ"( timestep, timestep );\ \ END;\ \ FUNCTION "CHJDeficiencyPostRun" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate CJAD
    Returns: NUMERIC - the amount (kcfsh) that the Chief Joseph Revised Request (as flow) plus Side Inflows is less than the Protection Level Flow at the specified timestep
    Called in:
    - CJADCalcPostRun function

    This function operates the same as the CHJDeficiencyPreRun function except that it uses Chief Joseph Constraints.Revised Request As Flow, a User-defined Variable whose value is set by Optimization, instead of Initial Request As Flow. It is then called by the CJADCalcPostRun function to set values in the Chief Joseph Constraints.CJAD slot. Because the Revised Request is set by Optimization, this function is evaluated during the Post-optimization Rulebased Simulation. It allows the user to view actual CJAD values for the run once the Chief Joseph Request has been revised (if necessary) by Optimization. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "FlowToVolume"( $ "Vernita Bar Constraints.Protection Level Flow" [timestep], timestep ) - "FlowToVolume"( $ "Chief Joseph Constraints.Revised Request As Flow" [timestep], timestep ) - "SumSideflowsToVolDownstreamCHJ"( timestep, timestep );\ \ END;\ \ FUNCTION "CJADCalcPreRun" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - DATETIME - the timestep at which to calculate CJAD
    Returns: NUMERIC - the Chief Joseph Accumulated Deficiency at the given timestep
    Called in:
    - Chief Joseph Constraints.CJAD Estimate Prerun expression slot

    This function makes the CJAD calculation at the start of the run that is used in the CJAD and Drafting constraints. All values used in this function are known, forecasted or estimated prior to the run. The value calculated by this function at each timestep is stored in the Chief Joseph Constraints.CJAD Estimate Prerun expression slot. The function first calls the IsCJADPeriod and IsCJADIIPeriod to check if the given timestep is within one of these two periods. If it is not the function returns a value of 0 kcfsh (CJAD constraints do not apply).

    The function then checks if the argument timestep is the Start Timestep. The function calculates a cumulative sum by adding the function?s value at the previous timestep (referenced from the CJAD Estimate Prerun expression slot) and the deficiency at the current timestep (as calculated by the CHJDeficiencyPreRun function). For the first timestep in the run period, there is no previous timestep value for the CJAD Estimate Prerun, so for the first timestep the function must reference the previous timestep value from the Chief Joseph Constraints.CJAD Input Prior to Run Period slot.

    After the check for the Start Timestep, the function then checks if it is the timestep ending at hour 1:00:00 (first timestep) on Wendesday, Thursday, Friday or Saturday. The purpose of this is to prevent any negative CJAD (a "surplus") from carrying over from one day to the next when it is not the weekend or CJAD repayment period (Monday through noon Wednesday). This requires that the daily Chief Joseph flows to meet PLF requirements are achieved within each calendar day Wednesday through Friday (the allowable CJAD for Monday and Tuesday force the daily flow requirements to be met these days as well). At the start of these four days (Wednesday through Saturday) the CJAD calculation is reset to the deficiency of that hour only before accumulating over the rest of the day. If there happens to be a positive CJAD at the start of one of these days, however, this will carry over. This is done by setting the value of the function equal to the greater of (as calculated by the predefined Max function) either the deficiency at that timestep alone (the case if there is no Accumulated Deficiency or a "surplus" negative deficiency) or the deficiency at that timestep plus the Accumulated Deficiency at the previous timestep (the case if the Accumulated Deficiency at the previous timestep is positive).

    For all other timesteps, including Saturday through Tuesday, CJAD is calculated simply by adding the deficiency at the current timestep (CHJDeficiencyPreRun) to the Accumulated Deficiency at the previous timestep (CJAD Estimate Prerun). All deficiency values are in kcfsh. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "IsCJADPeriod"( timestep ) OR "IsCJADIIPeriod"( timestep ) )\ THEN\ IF ( timestep == @"Start Timestep" )\ THEN\ IF ( timestep == @"1:00:00 Thursday" OR timestep == @"1:00:00 Friday" OR timestep == @"1:00:00 Saturday" OR timestep == @"1:00:00 Wednesday" OR timestep == @"1:00:00 Monday" OR timestep == @"1:00:00 Tuesday" )\ THEN\ "Max"( "CHJDeficiencyPreRun"( timestep ), $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] + "CHJDeficiencyPreRun"( timestep ) )\ ELSE\ $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] + "CHJDeficiencyPreRun"( timestep )\ ENDIF\ ELSE\ IF ( timestep == @"1:00:00 Thursday" OR timestep == @"1:00:00 Friday" OR timestep == @"1:00:00 Saturday" OR timestep == @"1:00:00 Wednesday" OR timestep == @"1:00:00 Monday" OR timestep == @"1:00:00 Tuesday" )\ THEN\ "Max"( "CHJDeficiencyPreRun"( timestep ), $ "Chief Joseph Constraints.CJAD Estimate Prerun" [timestep - 1.00000000 "hr"] + "CHJDeficiencyPreRun"( timestep ) )\ ELSE\ $ "Chief Joseph Constraints.CJAD Estimate Prerun" [timestep - 1.00000000 "hr"] + "CHJDeficiencyPreRun"( timestep )\ ENDIF\ ENDIF\ ELSE\ 0.00000000 "kcfs-hr"\ ENDIF;\ \ END;\ \ FUNCTION "CJADCalcPostRun" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate CJAD
    Returns: NUMERIC - the Chief Joseph Accumulated Deficiency at the given timestep
    Called in:
    - Chief Joseph Constraints.CJAD expression slot

    This function operates the same as the CJADCalcPreRun function except that it calls the CHJDeficiencyPostRun function instead of the CHJDeficiencyPreRun function, and it references the Chief Joseph Constraints.CJAD expression slot instead of the CJAD Estimate Prerun slot. The function is evaluated during the Post-optimization Simulation using the Chief Joseph Revised Request as set by optimization instead of the Initial Uncoordinated Request. The values calculated by this function will differ from the CJADCalcPreRun only if Optimization has determined there was a need to revise the Chief Joseph Request based on CJAD constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "IsCJADPeriod"( timestep ) OR "IsCJADIIPeriod"( timestep ) )\ THEN\ IF ( timestep > @"Start Timestep" )\ THEN\ IF ( timestep == @"1:00:00 Thursday" OR timestep == @"1:00:00 Friday" OR timestep == @"1:00:00 Saturday" OR timestep == @"1:00:00 Wednesday" OR timestep == @"1:00:00 Monday" OR timestep == @"1:00:00 Tuesday" )\ THEN\ "Max"( "CHJDeficiencyPostRun"( timestep ), $ "Chief Joseph Constraints.CJAD" [timestep - 1.00000000 "hr"] + "CHJDeficiencyPostRun"( timestep ) )\ ELSE\ $ "Chief Joseph Constraints.CJAD" [timestep - 1.00000000 "hr"] + "CHJDeficiencyPostRun"( timestep )\ ENDIF\ ELSE\ IF ( timestep == @"1:00:00 Thursday" OR timestep == @"1:00:00 Friday" OR timestep == @"1:00:00 Saturday" OR timestep == @"1:00:00 Wednesday" OR timestep == @"1:00:00 Monday" OR timestep == @"1:00:00 Tuesday" )\ THEN\ "Max"( "CHJDeficiencyPostRun"( timestep ), $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] + "CHJDeficiencyPostRun"( timestep ) )\ ELSE\ $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] + "CHJDeficiencyPostRun"( timestep )\ ENDIF\ ENDIF\ ELSE\ 0.00000000 "kcfs-hr"\ ENDIF;\ \ END;\ \ FUNCTION "AllowableCJAD" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to set the allowable CJAD
    Returns: NUMERIC - the maximum allowable Chief Joseph Accumulated Deficiency at the given timestep
    Called in:
    - Chief Joseph Constraints.CJAD Allowable expression slot

    This function sets the maximum allowable CJAD based on the day of the week and time of day. It is evaluated at the beginning of the run. The value returned by this function is set in the Chief Joseph Constraints.CJAD Allowable expression slot which is then referenced by the CJAD constraints.

    The function performs a series of logical checks to determine if the timestep is one for which CJAD constraints apply. CJAD constraints apply only at midnight (hour 24:00:00) for all days and noon on Wednesday. For all timesteps that are not in this category, the value returned by the function is 1,999.99 kcfsh.

    The function first calls the Holiday function to determine if the day has been specified as a holiday by checking the Dates.Holiday slot. If it is a holiday and the timestep is at hour 24:00:00, the function returns the value from the Chief Joseph Constraints.CJAD Holiday Max slot (854 kcfsh). It then checks if the timestep is at hour 12:00:00 on Wednesday or hour 24:00:00 on Wednesday, Thursday or Friday, and if it is the Allowable CJAD value is set to 0 kcfsh (no Accumulated Deficiency is allowed at the end of these days and must be completely repaid by noon Wednesday). Then it checks if the timestep is at hour 24:00:00 on Saturday or Sunday, and if it is the value is set to the corresponding Chief Joseph Constraints.CJAD Saturday Max scalar slot value (925 kcfsh) or CJAD Sunday Max value (854 kcfsh). Finally it checks if the timestep is at hour 24:00:00 on Monday or Tuesday. If it is a Monday or Tuesday midnight and the previous midnight is before the start of the run period, the Allowable CJAD value is set to the value from Chief Joseph Constraints.CJAD Input Prior to Run Period at the previous midnight. If the previous midnight is within the run period the Allowable CJAD is set equal to the value from Chief Joseph Constraints.CJAD Estimate Prerun at the previous midnight. The CJAD Estimate Prerun slot does not contain values at timesteps earlier than the run period, thus the need to use the CJAD Input Prior to Run Period slot.

    The Allowable CJAD values set by this function are based on the Hanford Reach Agreement D.1-5. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( "Holiday"( timestep ) AND timestep == @"24:00:00" )\ THEN\ $ "Chief Joseph Constraints.CJAD Holiday Max" []\ ELSE\ IF ( timestep == @"12:00:00 Wednesday" OR timestep == @"24:00:00 Wednesday" OR timestep == @"24:00:00 Thursday" OR timestep == @"24:00:00 Friday" )\ THEN\ 0.00000000 "kcfs-hr"\ ELSE\ IF ( timestep == @"24:00:00 Saturday" )\ THEN\ $ "Chief Joseph Constraints.CJAD Saturday Max" []\ ELSE\ IF ( timestep == @"24:00:00 Sunday" )\ THEN\ $ "Chief Joseph Constraints.CJAD Sunday Max" []\ ELSE\ IF ( timestep == @"24:00:00 Monday" OR timestep == @"24:00:00 Tuesday" AND timestep - 24.00000000 "hr" <= @"Start Timestep" )\ THEN\ $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [timestep - 24.00000000 "hr"]\ ELSE\ IF ( timestep == @"24:00:00 Monday" OR timestep == @"24:00:00 Tuesday" )\ THEN\ "Max"( $ "Chief Joseph Constraints.CJAD Estimate Prerun" [timestep - 24.00000000 "hr"], 0.00000000 "kcfs-hr" )\ ELSE\ 1999.99000000 "kcfs-hr"\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "CJADCalc" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at the end of the day being referenced
    Returns: NUMERIC - the CJAD value at the timestep
    Called in:
    - Chief Joseph Accumulated Deficiency goals

    This function calculates CJAD within Optimization based on the Chief Joseph Constraints.Revised Request As Flow User-defined Variable. It is called by CJAD constraints for Saturday, Sunday, Monday and Tuesday when the Accumulated Deficiency calculation begins at the start of Saturday. This function is only called if all of the timesteps from the beginning of Saturday to the end of the day being evaluated are within the run period. (If a portion of this time period is before the start of the run, the CJADCalcFromStartTimestep function is called instead.)

    The CumulativeFlow function is called to calculate the cumulative total of Vernita Bar Constraints.Protection Level Flow from Saturday through the end of the day being evaluated. From this the value of the CumulativeFlow function for Chief Joseph Constraints.Revised Request As Flow for the same time period is subtracted, and the value of the SumSideflowsToVolDownstreamCHJ (all Side Inflows for the same time period) is subtracted. The resulting CJAD value is constrained to be either equal to or greater than or equal to, depending on which goal is calling the function, the CJAD Allowable for that day. The Side Inflows are inputs for the run, and the Protection Level Flow is set by an expression slot at the beginning of the run. Revised Request As Flow is the only value that can be changed by Optimization; therefore constraining the value of this function, directly constrains Revised Request As Flow.

    This function identifies the timestep at which to begin the Accumulated Deficiency calculation by calling the RiverWare predefined function NextDate which looks back 110 hours (which will always be before the hour 1:00:00 on Saturday) then moves forward to the next timestep that is at 1:00:00 on Saturday. NOTE: The time label on a timestep in RiverWare refers to the time at the end of the timestep. The timestep labeled 1:00:00 spans the hour from 0:00:00 to 1:00:00; therefore beginning the CJAD calculation at the timestep 1:00:00 Saturday means that the accumulation actually begins at hour 0:00:00 on Saturday. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", "NextDate"( day - 110.00000000 "hr", @"1:00:00 Saturday" ), day ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", "NextDate"( day - 110.00000000 "hr", @"1:00:00 Saturday" ), day ) - "SumSideflowsToVolDownstreamCHJ"( "NextDate"( day - 110.00000000 "hr", @"1:00:00 Saturday" ), day );\ \ END;\ \ FUNCTION "CJADCalcSingleDay" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at the end of the day being referenced
    Returns: NUMERIC - the CJAD value at the timestep
    Called in:
    - Chief Joseph Accumulated Deficiency goals

    This function is similar to the CJADCalc function, but instead of looking back to the beginning of the previous Saturday to begin the calculation of Accumulated Deficiency, it only looks back to the start of the day being evaluated. The function is called by the CJAD constraints for Thursday and Friday. No Accumulated Deficiency is allowed at the end of these days, so the Chief Joseph releases must meet the PLF requirements within the day (Hanford Reach Agreement D.1). The value of this function is constrained to be either equal to or greater than or equal to, depending on which goal is calling the function, the CJAD Allowable for that day which will be zero.

    This function calls the DailyTotalFlow function to calculate the cumulative Protection Level Flow for the day and to calculate the cumulative Chief Joseph Constriants.Revised Request As Flow for the day. It calls SumSideflowsToVolDownstreamCHJ to calculate the cumulative Side Inflows. The Revised Request As Flow and Side Inflows are subtracted from the cumulative Protection Level Flow to determine the CJAD value at the end of the day. The Side Inflows are inputs for the run, and the Protection Level Flow is set by an expression slot at the beginning of the run. Revised Request As Flow is the only value that can be changed by Optimization; therefore constraining the value of this function, directly constrains Revised Request As Flow. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "DailyTotalFlow"( $ "Vernita Bar Constraints.Protection Level Flow", day ) - "DailyTotalFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", day ) - "SumSideflowsToVolDownstreamCHJ"( day - 23.00000000 "hr", day );\ \ END;\ \ FUNCTION "CJADCalcWednesday" ( DATETIME wed )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at the end of the Wednesday being referenced
    Returns: NUMERIC - the CJAD value at the timestep
    Called in:
    - Chief Joseph Accumulated Deficiency goals

    This function operates the same as the CJADCalcSingleDay function, but it calls the CumulativeFlow function instead of the DailyTotalFlow function. Flows are only totaled between noon and midnight on Wednesday. This function allows for separate constraints for CJAD at Wednesday noon when CJAD must be fully repaid and Wednesday at midnight when it must also be zero. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", wed - 11.00000000 "hr", wed ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", wed - 11.00000000 "hr", wed ) - "SumSideflowsToVolDownstreamCHJ"( wed - 11.00000000 "hr", wed );\ \ END;\ \ FUNCTION "CJADCalcFromStartTimestep" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at the end of the day being referenced
    Returns: NUMERIC - the CJAD value at the timestep
    Called in:
    - Chief Joseph Accumulated Deficiency goals

    This function is called in the cases when the timestep at which the Accumulated Deficiency calculation would normally begin is earlier than the first timestep in the run period. Using the normal CJADCalc function would require setting values on Chief Joseph Constraints.Revised Request As Flow at timesteps before the start of the run period. Variable values cannot be set outside of the run period. So in this case the Accumulated Deficiency calculation is initiated with the value of Chief Joseph Constraints.CJAD Input Prior to Run Period at the timestep before the start of the run period. This value is a required input for any runs when the CJAD constraints are in effect and allows for the incorporation of any Deficiency that has accumulated prior to the run period to be incorporated into the CJAD calculation. This initial CJAD value is added to the Deficiency during the run. The Deficiency during the run is calculated the same as the CJADCalc function, but instead of going back to the start of the previous Saturday, it only goes back to the start timestep. In this way, Revised Request As Flow is constrained for the timesteps from the start of the run to the end of the day being evaluated. The Chief Joseph Request is fixed for all timesteps before the start of the run. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] + ( "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", @"Start Timestep", day ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", @"Start Timestep", day ) - "SumSideflowsToVolDownstreamCHJ"( @"Start Timestep", day ) );\ \ END;\ \ FUNCTION "ChiefJosephRevisedRequest" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the Revised Request
    Returns: NUMERIC - Chief Joseph Request (MWH) at each timestep, revised if necessary by the CJAD constraints
    Called in:
    - Federal Generation Requests goal
    - Chief Joseph Constraints.Request expression slot

    This function calculates the Chief Joseph Revised Request by multiplying the Revised Request As Flow value for the time step by the Power Coefficient Approximation for the time step. The Chief Joseph Constraints.Delivered Energy User-defined Variable is constrained to be equal to the value returned by this function during the CJAD and CJAD II periods. A function is used in the constraint (as opposed to a simple slot value as in the corresponding constraint for Grand Coulee) because the value of the Chief Joseph Request could be revised by the CJAD constraints. This function allows for the revised value to be used in the constraint. If there is no revision to the Chief Joseph Request by the CJAD constraints, then the value returned by this function will be equal to the Chief Joseph Initial Uncoordinated Request. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] * $ "Chief Joseph Constraints.Power Coefficient Approximation" [timestep] * 1.00000000 "hr";\ \ END;\ \ FUNCTION "DraftVolume" ( OBJECT res, DATETIME startTimestep, DATETIME endTimestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which the draft is being calculated
    DATETIME - the timestep at the start of required of drafting
    DATETIME - the timestep at the end of the period for calculating the draft (typically the "current" timestep)

    Returns: NUMERIC - the total volume (kcfsh) drafted over the time period specified
    Called in:
    Vernita Bar Protection Level Flows and Drafting goals

    This function calculates the difference between the Storage (kcfsh) of the specified reservoir at the specified starting timestep (the beginning of a Saturday during the CJAD or CJAD II Periods) and the Storage at the specified ending timestep (a midnight timestep Saturday through Tuesday). This volume difference represents the amount the reservoir has been drafted over the time period. This volume is constrained to be greater than or equal to the Required Draft Volume for the day as calculated by an expression slot on the reservoir's Data Object. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ res & "Storage" [startTimestep] - res & "Storage" [endTimestep];\ \ END;\ \ FUNCTION "DownstreamDraft" ( OBJECT res, DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which to calculate the downstream draft
    DATETIME - the timestep at the end of the day for which draft volumes are being calculated

    Returns: NUMERIC - the required draft volume (kcfsh) of all reservoirs downstream of the argument reservoir
    Called in:
    - Vernita Bar Protection Level Flows and Drafting goals
    - CJAD Required Draft Volume expression slots

    This function uses a logical statement to determine which reservoir is being referenced. Based on the reservoir it sums the CJAD Required Draft Volume values for the timestep for each of the reservoirs downstream. These values are calculated at the beginning of the run in expression slots on the reservoirs' Data Objects. For Wanapum, Rocky Reach and Wells only the initial 3 feet of required draft (CJAD Required Draft1 Volume) at Priest Rapids is considered because this function is used to calculate the required draft at these reservoirs before the additional 0.7 feet of draft (CJAD Required Draft2 Volume) at Priest Rapids. When the function is evaluated for Chief Joseph, the additional 0.7 feet at Priest Rapids is included as this is intended to calculate the entire Non-Federal Required Draft before any Federal Required Draft must be considered. The function is not evaluated for Priest Rapids (no downstream reservoirs) or Rock Island (not included in the drafting requirements based on the Hanford Reach Agreement D.6.(a)). ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( res == % "Wanapum" )\ THEN\ $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day]\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD Required Draft Volume" [day]\ ELSE\ IF ( res == % "Wells" )\ THEN\ $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD Required Draft Volume" [day] + $ "Rocky Reach Constraints.CJAD Required Draft Volume" [day]\ ELSE\ IF ( res == % "Chief Joseph" )\ THEN\ $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD Required Draft Volume" [day] + $ "Rocky Reach Constraints.CJAD Required Draft Volume" [day] + $ "Wells Constraints.CJAD Required Draft Volume" [day] + $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [day]\ ELSE\ 0.00000000 "kcfs-hr"\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "DownstreamDraftCJADII" ( OBJECT res, DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which to calculate the downstream draft
    DATETIME - the timestep at the end of the day for which draft volumes are being calculated

    Returns: NUMERIC - the required draft volume (kcfsh) of all reservoirs downstream of the argument reservoir
    Called in:
    - Vernita Bar Protection Level Flows and Drafting goals
    - CJAD Required Draft Volume expression slots

    This function operates the same as the DownstreamDraft function but uses the CJAD II Required Draft Volumes instead of the CJAD Required Draft Volumes. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( res == % "Wanapum" )\ THEN\ $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day]\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day]\ ELSE\ IF ( res == % "Wells" )\ THEN\ $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day] + $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day]\ ELSE\ IF ( res == % "Chief Joseph" )\ THEN\ $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day] + $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day] + $ "Wells Constraints.CJAD II Required Draft Volume" [day] + $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft2 Volume" [day]\ ELSE\ 0.00000000 "kcfs-hr"\ ENDIF\ ENDIF\ ENDIF\ ENDIF;\ \ END;\ \ END;\ \ UTILITY_GROUP "Priest Rapids Flow Band Functions";\ DESCRIPTION "All of the functions in this Global Functions Group are called by Priest Rapids Flow Bands constraints, functions and expression slots related to these constraints, or constraints related to minimum weekend flows during the CJADII period . These constraints limit the daily fluctuation ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "RearingPeriod" ( )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: LIST of timesteps in the run period that are within the Rearing Period and end at hour 24:00
    Called in:
    - Priest Rapids Flow Bands goals

    The purpose of this function is to simplify the reading of the Priest Rapids Flow Bands constraints. The function calls the ActiveSeasonEndOfDayFromDates function to create a list of Rearing Period timesteps ending at hour 24:00 during the run period. If the run period is not during the Rearing Period the list will be empty and the constraint will be ignored. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ActiveSeasonEndOfDayFromDates"( "Rearing Period" );\ \ END;\ \ FUNCTION "FlowBandDay1Estimate" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at hour 24:00 of the first day in the run period
    Returns: NUMERIC - average Rock Island Outflow for the day prior to the first day in the run period
    Called in:
    - FlowBandEstimatedAvgFlow function

    The FlowBandEstimatedAvgFlow calls this function when the day being evaluated is the first day in the run period and is not a Saturday or Sunday. The value of this function is the value used in determining the allowable Priest Rapids Weekday Outflow Delta in accordance with the Hanford Reach Agreement C.5.(b)(1-5) with the exception that Rock Island.Outflow is used in place of Wanapum.Inflow, and this value is only used for the estimate for the first day of the run. For all other days the Chief Joseph forecasted outflow for the next 24 hours (or next 48 hours for the weekend) plus the average of side inflows for the past 24 hours is used. This is based on conversations with representatives from Central during meetings at CADSWES, March 8-9, 2011.

    This function calls the DailyAverage function and evaluates it for Rock Island.Outflow for the day prior to the first day in the run period. Thus the timestep argument given to the function is "day - 24 hr" where "day" represents the timestep at hour 24:00 of the first day in the run period. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "DailyAverage"( $ "Rock Island.Outflow", day - 24.00000000 "hr" );\ \ END;\ \ FUNCTION "FlowBandWeekdayEstimate" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the flow estimate
    Returns: NUMERIC - average forecasted Chief Joseph Outflow for the day plus average of Side Inflows from the previous day
    Called in:
    - FlowBandEstimatedAvgFlow function

    The FlowBandEstimatedAvgFlow calls this function when the day being evaluated is a weekday and is not the first day in the run period. The value of this function is the value used in determining the allowable Priest Rapids Weekday Outflow Delta in accordance with the Hanford Reach Agreement C.5.(b)(1-5) with the exception that the Chief Joseph Forecast Outflow for the day plus Side Inflows from the previous day are used instead of Wanapum Inflow. This is based on conversations with representatives from Central during meetings at CADSWES, March 8-9, 2011.

    The Flow Bands constraints are evaluated at midnight for each day, and at the final timestep. The function first checks if the timestep being evaluated is the final timestep in the run. If it is not the final timestep (the ELSE portion of the conditional statement), it calls the DailyAverage function to calculate the average of Chief Joseph Constraints.Discharge Estimate for the day being evaluated. It then adds to this the value of the DailyAverageSideflowsDownstreamOfCHJ function for the day prior to the day being evaluated by the constraint. The sum of these two averages is the value returned by the function. Even though this function is evaluated at all weekday timesteps, only the values at midnight and the final timestep are utilized by the Flow Bands constraints.

    If the timestep being evaluated is the final timestep, the same operation is carried out, but instead of using the timestep being evaluated (in this case, the final timestep) as the argument in the DailyAverage function, the NextDate function is called to find the timestep ending at hour 24:00:00 of the final day in the run. This assures that the Chief Joseph Forecast Outflow values used are those of the calendar day and not the 24 hours prior to the end of the run period in the case that the run period does not end at midnight. Likewise for the DailyAverageSideflowsDownstreamOfCHJ function, the NextDate function is called to find the timestep at hour 24:00:00 of the previous day. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( day == @"Finish Timestep" )\ THEN\ "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", "NextDate"( day, @"24:00:00" ) ) + "DailyAverageSideflowsDownstreamOfCHJ"( "NextDate"( day - 24.00000000 "hr", @"24:00:00" ) )\ ELSE\ "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", day ) + "DailyAverageSideflowsDownstreamOfCHJ"( day - 24.00000000 "hr" )\ ENDIF;\ \ END;\ \ FUNCTION "FlowBandWeekendEstimate" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to calculate the flow estimate
    Returns: NUMERIC - average forecasted Chief Joseph Outflow for the weekend plus average of Side Inflows from Friday
    Called in:
    - FlowBandEstimatedAvgFlow function

    The FlowBandEstimatedAvgFlow calls this function when the day being evaluated is Saturday or Sunday. The value of this function is the value used in determining the allowable Priest Rapids Daily Outflow Delta for the weekend in accordance with the Hanford Reach Agreement C.5.(b)(1-5).

    The function operates the same as the FlowbandWeekdayEstimate function with the exception that the average of the Chief Joseph Forecast Outflow is taken for two days (Saturday and Sunday). Also the function must first check if the day is Saturday or Sunday. If it is Saturday the DailyAverage function is evaluated for the current day and the following day. If it is Sunday the DailyAverage function is evaluated for the previous day and the current day. The Saturday and Sunday portions of the function will return the same value. Even though this function is evaluated for all weekend timesteps, only the values at midnight and the final timestep are utilized by the Flow Bands constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( day == @"Saturday" )\ THEN\ IF ( day == @"Finish Timestep" )\ THEN\ ( "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", "NextDate"( day, @"24:00:00" ) ) + "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", "NextDate"( day + 24.00000000 "hr", @"24:00:00" ) ) ) / 2.00000000 + "DailyAverageSideflowsDownstreamOfCHJ"( "NextDate"( day - 24.00000000 "hr", @"24:00:00" ) )\ ELSE\ ( "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", day ) + "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", day + 24.00000000 "hr" ) ) / 2.00000000 + "DailyAverageSideflowsDownstreamOfCHJ"( day - 24.00000000 "hr" )\ ENDIF\ ELSE\ IF ( day == @"Finish Timestep" )\ THEN\ ( "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", "NextDate"( day, @"24:00:00" ) ) + "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", "NextDate"( day - 24.00000000 "hr", @"24:00:00" ) ) ) / 2.00000000 + "DailyAverageSideflowsDownstreamOfCHJ"( "NextDate"( day - 48.00000000 "hr", @"24:00:00" ) )\ ELSE\ ( "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", day ) + "DailyAverage"( $ "Chief Joseph Constraints.Discharge Estimate", day - 24.00000000 "hr" ) ) / 2.00000000 + "DailyAverageSideflowsDownstreamOfCHJ"( day - 48.00000000 "hr" )\ ENDIF COMMENTED_BY "On Sunday the CHJ Discharge Estimate for Saturday and Sunday is used."\ ENDIF COMMENTED_BY "On Saturday the CHJ Discharge Estimate for Saturday and Sunday is used.";\ \ END;\ \ FUNCTION "FlowBandEstimatedAvgFlow" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at hour 24:00 of the day over which the flow estimate is being calculated
    Returns: NUMERIC - average flow value used in determining Priest Rapids Flow Bands
    Called in:
    - Flow Band Estimated Average Flow expression slot
    - FlowBandEstimateAbove170kcfs function

    This function is evaluated at the beginning of the run and determines which average flow value to use for setting the Priest Rapids Flow Band for the day based on what day it is and where it is in the run period. The value returned by this function is set in the Flow Band Estimated Average Flow expression slot at that day's timestep. If it is the first day in the run and not a weekend, the value returned by the FlowBandDay1Estimate function is used. If it is a weekday and not the first day in the run, the value returned by the FlowBandWeekdayEstimate function is used. If it is Saturday or Sunday, the FlowBandWeekendEstimate is used.

    The methods for calculating the average flow used in determining Flow Bands are based on the Hanford Reach Agreement C.5.(b)(1-5) with the exception that Rock Island Outflow is used in place of Wanapum Inflow, and this Outflow is only used for the first day in the run. For all other weekdays the Chief Joseph Forecasted Outflow plus Side Inflows is used (see the description of the FlowBandWeekdayEstimate function). This is based on conversations with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( day - @"Start Timestep" < 24.00000000 "hr" AND day != @"Saturday" AND day != @"Sunday" )\ THEN\ "FlowBandDay1Estimate"( day )\ ELSE\ IF ( day >= @"Monday" AND day <= @"Friday" )\ THEN\ "FlowBandWeekdayEstimate"( day )\ ELSE\ "FlowBandWeekendEstimate"( day )\ ENDIF\ ENDIF;\ \ END;\ \ FUNCTION "FlowBand" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to determine the allowable flow band
    Returns: NUMERIC - the allowable Priest Rapids Daily Outflow Delta
    Called in:
    - Priest Rapids Constraints.Flow Bands expression slot

    This function is evaluated at the beginning of the run and sets the allowable Priest Rapids Daily Outflow Delta in the Flow Bands expression slot in accordance with the Hanford Reach Agreement C.5.(b)(1-5). The function calls the RiverWare Predefined TableLookup function which references the Priest Rapids Constraints.Flow Band Ranges table slot. The TableLookup function enters column 0 (the "from" column, the second argument in the TableLookup function) and searches for the row with the upper limit of the flow range, as specified in the Hanford Reach Agreement C.5.(b)(1-5), that contains the value of Priest Rapids Constraints.Estimated Average Flow for the specified day. It then returns the value from column 1 (the "to" column, the third argument in the TableLookup function) in that same row. This is the allowable Priest Rapids Outflow Delta for the day. The TRUE argument in the TableLookup function tells the function to round up from the Estimated Average Flow value (find the upper limit as opposed to the lower limit of the range). Even though this function is evaluated and sets values in the expression slot at all timesteps, only the values at midnight and the final timestep are utilized by the Flow Bands constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "TableLookup"( $ "Priest Rapids Constraints.Flow Band Ranges", 0.00000000, 1.00000000, $ "Priest Rapids Constraints.Flow Band Estimated Average Flow" [day], day, TRUE );\ \ END;\ \ FUNCTION "FlowBandEstimateAbove170kcfs" ( DATETIME day )\ RETURN_TYPE BOOLEAN;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which to constrain Priest Rapids flow
    Returns: BOOLEAN - True if the Estimated Average Flow for the day is greater than 170 kcfs
    Called in:
    - Priest Rapids Flow Bands goal

    When this function is called by the Priest Rapids Flow Bands goal, it checks if the value returned by the FlowBandEstimatedAvgFlow function is greater than or equal to the value in row 3 and column 0 of the Priest Rapids Constraints.Flow Band Ranges table slot (170 kcfs, the upper limit of the highest Flow Band Range). If the Estimated Average Flow is greater than this value, the function returns TRUE. This tells the constraint to set the Priest Rapids Daily Low Flow (minimum flow value for the day) to be greater than or equal to 150 kcfs. If the Estimated Average Flow is less than 170 kcfs, this function returns FALSE, and the constraint then sets the Priest Rapids Daily Outflow Delta less than or equal to the allowable Flow Band for the day. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "FlowBandEstimatedAvgFlow"( day ) >= $ "Priest Rapids Constraints.Flow Band Ranges" [3.00000000, 0.00000000];\ \ END;\ \ FUNCTION "PRDHighFlowBandMinimum" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: NUMERIC - The minimum Priest Rapids Outflow when the Estimated Average Flow for the day is greater than 170 kcfs
    Called in: Priest Rapids Flow Bands goal

    This function simply references the value in row 4 and column 1 of the Priest Rapids Constraints.Flow Band Ranges table slot (150 kcfs). If the Estimated Average Flow for the day is greater than 170 kcfs, then Priest Rapids Constraints.Daily Low Flow (minimum flow for the day) must be greater than or equal to the value of this function. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Priest Rapids Constraints.Flow Band Ranges" [4.00000000, 1.00000000];\ \ END;\ \ FUNCTION "AvgPRDMinFlowMonToThursStartMon" ( DATETIME mon )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - timestep at hour 24:00 of the Monday previous to the day being evaluated in the constraint
    Returns: NUMERIC - The minimum Priest Rapids Outflow for the weekend
    Called in:
    - Priest Rapids Flow Bands goal

    This function is called by the Minimum Weekend Flows constraints when the run period begins on or before the Monday prior to the weekend for which the constraint is being evaluated. If this is the case, all of the minimum flow values from Monday through Thursday used to set the minimum flow for the weekend come from the Priest Rapids Constraints.Daily Low Flow slot (a User-defined Variable). They are not known prior to the Optimization run. The argument given to the function when it is called in the constraint assures the timestep being referenced is hour 24:00:00 on Monday. For example if the day in the constraint is Saturday, the argument is "day - 120 hr." 120 hours prior to hour 24:00:00 on Saturday is hour 24:00:00 on Monday. The function calculates the average of Priest Rapids Constraints.Daily Low Flow over this timestep and this timestep plus 24, 48 and 72 hours (Tuesday, Wednesday and Thursday at hour 24:00:00). The constraint then requires the Daily Low Flow for Saturday and Sunday to be greater than or equal to the value returned by this function. ";\ ACTIVE FALSE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME day IN { mon , mon + 24.00000000 "hr" , mon + 48.00000000 "hr" , mon + 72.00000000 "hr" } ) STAT_AVE\ $ "Priest Rapids Constraints.Daily Low Flow" [day]\ ENDFOR;\ \ END;\ \ FUNCTION "AvgPRDMinFlowMonToThursStartTues" ( DATETIME tues )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - timestep at hour 24:00 of the Tuesday previous to the day being evaluated in the constraint
    Returns: NUMERIC - The minimum Priest Rapids Outflow for the weekend
    Called in:
    - Priest Rapids Flow Bands goal

    This function is called by the Minimum Weekend Flows constraints when the run period begins on the Tuesday prior to the weekend for which the constraint is being evaluated. If this is the case, the minimum flow values from Tuesday through Thursday used to set the minimum flow for the weekend come from the Priest Rapids Constraints.Daily Low Flow slot (a User-defined Variable which will be set during Optimization), but the minimum flow for Monday must come from the Priest Rapids.Outflow slot at timesteps before the start of the run period. (Optimization cannot set User-defined Variable values for timesteps outside of the run period.) The Monday Outflow values in this case are inputs known prior to the start of the run. The argument given to the function when it is called in the constraint assures the timestep being referenced is hour 24:00:00 on Tuesday. For example if the day in the constraint is Saturday, the argument is "day - 96 hr." 96 hours prior to hour 24:00:00 on Saturday is hour 24:00:00 on Tuesday. The function sums Priest Rapids Constraints.Daily Low Flow over this timestep and this timestep plus 24 and 48 hours (Tuesday, Wednesday and Thursday at hour 24:00:00). It then calls the RiverWare Predefined function MinItem to find the minimum value of Priest Rapids.Outflow from all timesteps on Monday and adds this to the previous sum. This sum over the four days is then divided by four to get the average which is returned by this function. The constraint then requires the Daily Low Flow for Saturday and Sunday to be greater than or equal to the value returned by this function. ";\ ACTIVE FALSE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( FOR ( DATETIME day IN { tues , tues + 24.00000000 "hr" , tues + 48.00000000 "hr" } ) STAT_SUM\ $ "Priest Rapids Constraints.Daily Low Flow" [day]\ ENDFOR COMMENTED_BY "Tuesday, Wednesday and Thursday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN tues - 47.00000000 "hr" TO tues - 24.00000000 "hr" ) WITH LIST monFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO monFlows\ ENDFOR ) COMMENTED_BY "Monday minimum Priest Rapids Outflow" ) / 4.00000000;\ \ END;\ \ FUNCTION "AvgPRDMinFlowMonToThursStartWed" ( DATETIME wed )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - timestep at hour 24:00 of the Wednesday prior to the day being evaluated in the constraint
    Returns: NUMERIC - The minimum Priest Rapids Outflow for the weekend
    Called in:
    - Priest Rapids Flow Bands goal

    This function is called by the Minimum Weekend Flows constraints when the run period begins on the Wednesday prior to the weekend for which the constraint is being evaluated. It operates the same as the AvgPRDMinFlowMonToThursStartTues function with the exception that only Wednesday and Thursday minimum flow values come from Priest Rapids Constraints.Daily Low Flow, and both Monday and Tuesday minimum flow values come from Priest Rapids.Outflow for timesteps prior to the start of the run period. ";\ ACTIVE FALSE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( FOR ( DATETIME day IN { wed , wed + 24.00000000 "hr" } ) STAT_SUM\ $ "Priest Rapids Constraints.Daily Low Flow" [day]\ ENDFOR COMMENTED_BY "Wednesday and Thursday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN wed - 47.00000000 "hr" TO wed - 24.00000000 "hr" ) WITH LIST tuesFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO tuesFlows\ ENDFOR ) COMMENTED_BY "Tuesday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN wed - 71.00000000 "hr" TO wed - 48.00000000 "hr" ) WITH LIST monFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO monFlows\ ENDFOR ) COMMENTED_BY "Monday minimum Priest Rapids Outflow" ) / 4.00000000;\ \ END;\ \ FUNCTION "AvgPRDMinFlowMonToThursStartThurs" ( DATETIME thurs )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - timestep at hour 24:00 of the Thursday prior to the day being evaluated in the constraint
    Returns: NUMERIC - The minimum Priest Rapids Outflow for the weekend
    Called in:
    - Priest Rapids Flow Bands goal

    This function is called by the Minimum Weekend Flows constraints when the run period begins on the Thursday prior to the weekend for which the constraint is being evaluated. It operates the same as the AvgPRDMinFlowMonToThursStartTues function with the exception that only the Thursday minimum flow value comes from Priest Rapids Constraints.Daily Low Flow, and the Monday, Tuesday and Wednesday minimum flow values come from Priest Rapids.Outflow for timesteps prior to the start of the run period. ";\ ACTIVE FALSE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( $ "Priest Rapids Constraints.Daily Low Flow" COMMENTED_BY "Thursday minimum Priest Rapids Outflow" [thurs] + "MinItem"( FOR ( DATETIME timestep IN thurs - 47.00000000 "hr" TO thurs - 24.00000000 "hr" ) WITH LIST wedFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO wedFlows\ ENDFOR ) COMMENTED_BY "Wednesday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN thurs - 71.00000000 "hr" TO thurs - 48.00000000 "hr" ) WITH LIST tuesFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO tuesFlows\ ENDFOR ) COMMENTED_BY "Tuesday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN thurs - 95.00000000 "hr" TO thurs - 72.00000000 "hr" ) WITH LIST monFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO monFlows\ ENDFOR ) COMMENTED_BY "Monday minimum Priest Rapids Outflow" ) / 4.00000000;\ \ END;\ \ FUNCTION "AvgPRDMinFlowMonToThursPreRun" ( DATETIME thurs )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - timestep at hour 24:00 of the Thursday prior to the day being evaluated in the constraint
    Returns: NUMERIC - The minimum Priest Rapids Outflow for the weekend
    Called in:
    - Priest Rapids Flow Bands goal

    This function is called by the Minimum Weekend Flows constraints when entire Monday through Thursday period from which the Minimum Weekend Flow is determined is before the start of the run period. In this case, all of the daily minimum flow values must come from the Priest Rapids.Outflow slot for timesteps prior to the start of the run period. These values are knows inputs prior to the run. The MinItem function is called to look over all Outflow values from each day to find the minimum. The four minimum values (one from each day) are added and divided by four to return the average. The constraint then requires the Daily Low Flow for Saturday and Sunday to be greater than or equal to the value returned by this function. ";\ ACTIVE FALSE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ ( "MinItem"( FOR ( DATETIME timestep IN thurs - 23.00000000 "hr" TO thurs ) WITH LIST thursFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO thursFlows\ ENDFOR ) COMMENTED_BY "Thursday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN thurs - 47.00000000 "hr" TO thurs - 24.00000000 "hr" ) WITH LIST wedFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO wedFlows\ ENDFOR ) COMMENTED_BY "Wednesday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN thurs - 71.00000000 "hr" TO thurs - 48.00000000 "hr" ) WITH LIST tuesFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO tuesFlows\ ENDFOR ) COMMENTED_BY "Tuesday minimum Priest Rapids Outflow" + "MinItem"( FOR ( DATETIME timestep IN thurs - 95.00000000 "hr" TO thurs - 72.00000000 "hr" ) WITH LIST monFlows = { } DO\ APPEND $ "Priest Rapids.Outflow" [timestep] ONTO monFlows\ ENDFOR ) COMMENTED_BY "Monday minimum Priest Rapids Outflow" ) / 4.00000000;\ \ END;\ \ END;\ \ UTILITY_GROUP "Ending Condition Functions";\ DESCRIPTION "All of the functions in this Global Functions Group are called by Ending Condition constraints or Minimize Outflow constraints which are in place to prevent over-generation during Optimization. ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "FederalEndingStorage" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: NUMERIC - the combined energy storage of Grand Coulee and Chief Joseph at the end of the run
    Called in:
    - Ending Condtions policy group

    This function converts Grand Coulee and Chief Joseph storage (kcfsh) at the final timestep into an energy value. Grand Coulee.Anticipated Storage is multiplied by the combined Power Coefficient Approximations for both Grand Coulee and Chief Joseph to reflect the generation potential of water in Grand Coulee as it passes through both projects. This is added to the Chief Joseph.Anticipated Storage multiplied by the Chief Joseph Power Coefficient Approximation. This function is called by constraints that have a combined effect of keeping as much water as possible upstream in the system. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Grand Coulee.Anticipated Storage" [@"Finish Timestep"] * ( $ "Grand Coulee Constraints.Power Coefficient Approximation" [@"Finish Timestep"] + $ "Chief Joseph Constraints.Power Coefficient Approximation" [@"Finish Timestep"] ) + $ "Chief Joseph.Anticipated Storage" [@"Finish Timestep"] * $ "Chief Joseph Constraints.Power Coefficient Approximation" [@"Finish Timestep"];\ \ END;\ \ FUNCTION "MaximizedFederalEndingStorage" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: NUMERIC - the largest possible Federal Energy Storage value, which corresponds to the minimum Accumulated Exchange
    Called in:
    - Smallest Accumulated Exchange goal

    This function calls the RiverWare Predefined Function OptVal to access the Grand Coulee and Chief Joseph Anticipated Storage values at the final timestep after the FederalEngingStorage function has been maximized. Using the Optimization values, the Ending Storage (MWH) is then calculated in the same manner as the with the FederalEndingStorage function. The Federal Constraints.Maximized Ending Federal Storage User-defined Variable is set equal to the value returned by this function at the final timestep. The constraint which calls this function is not actually maximizing the Federal Storage. It is only determining the values if the Federal Storage were maximized so that they can be referenced in later constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "OptValue"( $ "Grand Coulee.Anticipated Storage", @"Finish Timestep" ) * ( $ "Grand Coulee Constraints.Power Coefficient Approximation" [@"Finish Timestep"] + $ "Chief Joseph Constraints.Power Coefficient Approximation" [@"Finish Timestep"] ) + "OptValue"( $ "Chief Joseph.Anticipated Storage", @"Finish Timestep" ) * $ "Chief Joseph Constraints.Power Coefficient Approximation" [@"Finish Timestep"];\ \ END;\ \ FUNCTION "MinimizedEndingAccumulatedExchange" ( )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: None
    Returns: NUMERIC - the smallest possible Accumulated Exchange value
    Called in:
    - Smallest Accumulated Exchange goal

    This function calls the RiverWare Predefined Function OptVal to access the Grand Coulee and Chief Joseph Accumulated Exchange user-defined Variable values at the final timestep after the FederalEngingStorage function has been maximized (corresponding to the smallest Accumulated Exchange). These two Optimization values are then added to give the total minimum Accumulated Exchange at the final timestep. The Federal Constraints.Minimized Ending Accumulated Exchange User-defined Variable is set equal to the value returned by this function at the final timestep. The constraint which calls this function is not actually minimizing Accumulated Exchange. It is only determining the values if Accumulated Exchange were minimized so that they can be referenced in later constraints. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "OptValue"( $ "Chief Joseph Constraints.Accumulated Exchange", @"Finish Timestep" ) + "OptValue"( $ "Grand Coulee Constraints.Accumulated Exchange", @"Finish Timestep" );\ \ END;\ \ FUNCTION "MaxPossibleEndingStorage" ( OBJECT res )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: OBJECT - the reservoir for which to calculate the ending storage
    Returns: NUMERIC - the largest possible ending Storage for the given reservoir
    Called in:
    - Balance Res Elevations and Accumulated Exchange goal

    This function starts with the maximum possible storage for the given reservoir by calling the RiverWare Predefined Function ElevationToStorage and evaluating it for the License Max Pool Elevation for the given reservoir. It then subtracts a volume equal to the reservoir's total storage volume when full multiplied by the ratio of the minimized Accumulated Exchange to the maximum allowable Accumulated Exchange. The Minimized Accumulated Exchange value is set in the Smallest Accumulated Exchange goal. This volume that is subtracted represents a volume corresponding to the smallest proportion of Accumulated Exchange that must be used in order to meet all higher priority constraints. The Anticipated Storage for each Non-Federal reservoir is then constrained to be greater than or equal to the value returned by this function. The constraint that calls this function is not expected to be 100% satisfied on all runs. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ) - ( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ) - "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ) ) * ( ( $ "Federal Constraints.Minimized Ending Accumulated Exchange" [@"Finish Timestep"] - $ "Federal Constraints.Accumulated Exchange Min" [] ) / ( $ "Federal Constraints.Accumulated Exchange Max" [] - $ "Federal Constraints.Accumulated Exchange Min" [] ) );\ \ END;\ \ FUNCTION "CumulDownstreamPowerCoeffApprox" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which to calculate the Cumulative Power Coeffcient
    DATETIME - the timestep at which to calculate the Power Coefficient

    Returns: NUMERIC - the sum of Power Coefficient Approximations for the specified reservoir and all reservoirs downstream of it
    Called in:
    - Maximize Total Energy Storage goal

    This function sums the Power Coefficient Approximation for the specified reservoir and all reservoirs downstream of the specified reservoir. It calls the DownstreamReservoirs function to determine the list of reservoirs which should be included in the calculation. This function is called by the Maximize Total Energy Storage goal. The Anticipated Storage for each reservoir is multiplied by the value returned by this function to give a value that represents the generation potential of water in a reservoir as it passes through all downstream projects. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( OBJECT downstreamRes IN "DownstreamReservoirs"( res ) ) STAT_SUM\ "SlotValueFromDataObject"( downstreamRes, "Power Coefficient Approximation", timestep )\ ENDFOR;\ \ END;\ \ END;\ \ UTILITY_GROUP "PostOpt Simulation Functions";\ DESCRIPTION "The functions in this group are used in the Post-optimization Ruleset to adjust Turbine Release and Regulated Spill from the Opt Values if necessary to prevent exceeding the Turbine Capacity due to small approximation error in the Optimization. Any adjustments should be quite small.";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "OptValForPostOptSim" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the series slot for which to return the Optimization value
    DATETIME - the timestep at which to return the Optimization value

    Returns: NUMERIC - the specified slots value at the specified timestep from the Optimization solution or the value already present in the slot if it contains a value
    Called in:
    - Post Opt Simulation functions
    - Set Priest Rapids Outflow rule in the Post-optimization ruleset

    This function first checks if the specified slot already has a valid value. If it does, it simply returns the value. Otherwise it returns the value from the Optimization solution for the slot. This allows additional values to be calculated in the Post-optimization RBS based on the specified Opt vlaue.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN slot [timestep] )\ THEN\ slot [timestep]\ ELSE\ "OptValue"( slot, timestep )\ ENDIF;\ \ END;\ \ FUNCTION "TWCalcForPostOptSim" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which the Tailwater is calculated
    DATETIME - the timestep at which to calculate tailwater

    Returns: NUMERIC - the Tailwater at the specified reservoir based on Storages and Outflows from the Optimization solution
    Called in:
    - OHCalcForPostOptSim function

    This function calculates a Tailwater Elevation based on Storages and Outflows from the Optimization solution for reservoirs that use the TWstageFlowLookupTable method for Tailwater. This Tailwater value then allows Operating Head to be calculated to determine the reservoir's Turbine Capacity within a Post-optimization rule execution. This function duplicates the 3D interpolation that is used to calculate Tailwater by the TWstageFlowLookupTable method. If the reservoir already contains a valid value in the Tailwater Elevation slot, it will be used instead of the value calculated from the Optimization variable values.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN res & "Tailwater Elevation" [timestep] )\ THEN\ res & "Tailwater Elevation" [timestep]\ ELSE\ "TableInterpolation3D"( res & "Stage Flow Tailwater Table", 0.00000000, "OptValForPostOptSim"( res & "Outflow", timestep ), 1.00000000, ( "StorageToElevation"( "DownstreamRes"( res ), "OptValForPostOptSim"( "DownstreamRes"( res ) & "Storage", timestep ) ) + "StorageToElevation"( "DownstreamRes"( res ), "OptValForPostOptSim"( "DownstreamRes"( res ) & "Storage", timestep - 1.00000000 "hr" ) ) ) / 2.00000000, 2.00000000, timestep )\ ENDIF;\ \ END;\ \ FUNCTION "TWCalcForPostOptSimTW2D" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which the Tailwater is calculated
    DATETIME - the timestep at which to calculate tailwater

    Returns: NUMERIC - the Tailwater at the specified reservoir based on Storages and Outflows from the Optimization solution
    Called in:
    - OHCalcForPostOptSimTW2D function

    This function calculates a Tailwater Elevation based on Storages and Outflows from the Optimization solution for reservoirs that use the TWbaseValuePlusLookupTable method for Tailwater. This Tailwater value then allows Operating Head to be calculated to determine the reservoir's Turbine Capacity within a Post-optimization rule execution. This function duplicates the interpolation that is used to calculate Tailwater by the TWbaseValuePlusLookupTable method. If the reservoir already contains a valid value in the Tailwater Elevation slot, it will be used instead of the value calculated from the Optimization variable values.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN res & "Tailwater Elevation" [timestep] )\ THEN\ res & "Tailwater Elevation" [timestep]\ ELSE\ "TableInterpolation"( res & "Tailwater Table", 0.00000000, 1.00000000, "OptValForPostOptSim"( res & "Outflow", timestep ), timestep ) + ( "StorageToElevation"( "DownstreamRes"( res ), "OptValForPostOptSim"( "DownstreamRes"( res ) & "Storage", timestep ) ) + "StorageToElevation"( "DownstreamRes"( res ), "OptValForPostOptSim"( "DownstreamRes"( res ) & "Storage", timestep - 1.00000000 "hr" ) ) ) / 2.00000000\ ENDIF;\ \ END;\ \ FUNCTION "OHCalcForPostOptSim" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which the Operating Head is calculated
    DATETIME - the timestep at which to calculate Operating Head

    Returns: NUMERIC - the Operating Head at the specified reservoir calculated as in Simulation but using Storages and Outflows from the Optimization solution
    Called in:
    - Set Reservoir Outflow Post-optimization rules

    This function calculates an Operating Head value based on Storages and Outflows from the Optimization solution for reservoirs that use the TWstageFlowLookupTable method for Tailwater. The Operating Head is calculated as the difference between the average Elevation from the previous and current timesteps (calculated from Optimization Storage values) and the Tailwater Elevation returned by the TWCalcForPostOptSim function, which also uses Optimization Storages and Outflows. The value returned by this function matches the Operating Head calculated and set on the slot at the end of the reservoir's dispatching. Calculating it with this function allows the Turbine Capacity to be calculated within the Post-optimization rule using the reservoir's Auto Max Turbine Q table. The reservoir's Turbine Release will be set to the smaller of the Optimization Turbine Release or the Turbine Capacity calculated using this Operating Head. This allows for a small adjustment in the case that the Optimization Turbine Release slightly exceeds the actual Turbine Capacity in Simulation due to small approximation error from linearization in Optimization. The reduction in Turbine Release from the Optimzation Value will be shifted to Regulated Spill.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN res & "Operating Head" [timestep] )\ THEN\ res & "Operating Head" [timestep]\ ELSE\ ( "StorageToElevation"( res, "OptValForPostOptSim"( res & "Storage", timestep ) ) + "StorageToElevation"( res, "OptValForPostOptSim"( res & "Storage", timestep - 1.00000000 "hr" ) ) ) / 2.00000000 - "TWCalcForPostOptSim"( res, timestep )\ ENDIF;\ \ END;\ \ FUNCTION "OHCalcForPostOptSimTW2D" ( OBJECT res, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir for which the Operating Head is calculated
    DATETIME - the timestep at which to calculate Operating Head

    Returns: NUMERIC - the Operating Head at the specified reservoir calculated as in Simulation but using Storages and Outflows from the Optimization solution
    Called in:
    - Set Reservoir Outflow Post-optimization rules

    This function operates the same as the OHCalcForPostOptSim function but is used for reservoirs with the TWbaseValuePlusLookUpTable method for Tailwater.";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ IF ( NOT IsNaN res & "Operating Head" [timestep] )\ THEN\ res & "Operating Head" [timestep]\ ELSE\ ( "StorageToElevation"( res, "OptValForPostOptSim"( res & "Storage", timestep ) ) + "StorageToElevation"( res, "OptValForPostOptSim"( res & "Storage", timestep - 1.00000000 "hr" ) ) ) / 2.00000000 - "TWCalcForPostOptSimTW2D"( res, timestep )\ ENDIF;\ \ END;\ \ END;\ \ END\ } # Section: RuleSet Manager Section {RuleSet Manager} set rsm "$ws.RulesetMgr" $rsm saveLoadedSetWithModel $rsm loadedSet {RULESET\ NAME "MidC_PostOptRules";\ AGENDA_ORDER ASCENDING;\ DESCRIPTION "This Post-optimization Ruleset returns the Optimization solution to the workspace during the Post-optimization Rulebased Simulation. It does this primarily by setting the Turbine Release and Regulated Spill slots (and Bypass where applicable) to the corresponding values from the Optimization solution. If necessary some small adjustments are made. With these values the system can solve completely in Simulation for all other variable values. The rules also set the values for user-defined variable slots. These values are set only so the user can see the values from the Optimization solution. They have no effect on the Simulation.";\ PRECISION 2;\ NOTES "";\ BEGIN\ \ POLICY_GROUP "Baseline Values";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Baseline Slots All Reservoirs";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT @"t" == @"Finish Timestep";\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (LIST slotList = { "Inflow" , "Outflow" , "Pool Elevation" , "Power" , "Power Coefficient" , "Regulated Spill" , "Turbine Release" }) DO\ FOREACH (STRING slotName IN slotList) DO\ WITH_STATEMENT (STRING baselineSlotName = slotName CONCAT " Baseline") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (SLOT baselineSlot = "SlotFromDataObject"( res, baselineSlotName )) DO\ WITH_STATEMENT (SLOT snapshotSlot = % "Baseline" & ( ( STRINGIFY res ) CONCAT "_" CONCAT slotName )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ baselineSlot [t] := snapshotSlot [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Baseline Slots Requests";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT @"t" == @"Finish Timestep";\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (LIST slotList = { "Nonfed Delivered Energy" , RPL_DISABLE "Total Delivered Energy" , "Total Nonfed Generation" }) DO\ FOREACH (STRING slotName IN slotList) DO\ WITH_STATEMENT (STRING baselineSlotName = slotName CONCAT " Baseline") DO\ FOREACH (OBJECT obj IN { % "Requests" }) DO\ WITH_STATEMENT (SLOT baselineSlot = obj & baselineSlotName) DO\ WITH_STATEMENT (SLOT snapshotSlot = % "Baseline" & ( ( STRINGIFY obj ) CONCAT "_" CONCAT slotName )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ baselineSlot [t] := snapshotSlot [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Baseline Slots Nonfederal Data";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT @"t" == @"Finish Timestep";\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Nonfederal Data.Energy In Storage Baseline" [t] := $ "Nonfederal Data.Energy In Storage" [t];\ \ $ "Nonfederal Data.Energy In Storage Cumulative Baseline" [t] := $ "Baseline.Nonfederal Data_NonFederal Energy In Storage Cumulative" [t];\ \ ENDFOREACH;\ \ END;\ \ RULE "Baseline Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT @"t" == @"Finish Timestep";\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Grand Coulee Constraints.Bias Baseline" [t] := $ "Baseline.Grand Coulee Constraints_Bias" [t];\ \ $ "Chief Joseph Constraints.Bias Baseline" [t] := $ "Baseline.Chief Joseph Constraints_Bias" [t];\ \ $ "Federal Constraints.Bias Baseline" [t] := $ "Baseline.Federal Constraints_Bias" [t];\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Constraint Evaluaton";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Fish Spill";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Wells" }) DO\ IF_STATEMENT (( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), @"t" ) AND "SlotFromDataObject"( res, "Fish Spill Manual" ) [] > 0.00000000 "kcfs" )) THEN\ $ "Constraint Evaluation.Wells Fish Spill Deficiency" [] := IF ( $ "Wells.Regulated Spill" [] < "SlotFromDataObject"( res, "Fish Spill Manual" ) [] )\ THEN\ $ "Wells.Regulated Spill" [] - "SlotFromDataObject"( res, "Fish Spill Manual" ) []\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( res, "Summer Fish Spill Season", @"t" )) THEN\ % "Constraint Evaluation" & ( ( STRINGIFY res ) CONCAT " Fish Spill Deficiency" ) [] := IF ( res & "Regulated Spill" [] < "SlotFromDataObject"( res, "Fish Spill Default" ) [] )\ THEN\ res & "Regulated Spill" [] - "SlotFromDataObject"( res, "Fish Spill Default" ) []\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ ELSE\ $ "Constraint Evaluation.Wells Fish Spill Deficiency" [] := 0.00000000 "kcfs";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ IF_STATEMENT (( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), @"t" ) AND "SlotFromDataObject"( res, "Fish Spill Manual" ) [] > 0.00000000 "kcfs" )) THEN\ % "Constraint Evaluation" & ( ( STRINGIFY res ) CONCAT " Fish Spill Deficiency" ) [] := IF ( res & "Regulated Spill" [] < "SlotFromDataObject"( res, "Fish Spill Manual" ) [] )\ THEN\ res & "Regulated Spill" [] - "SlotFromDataObject"( res, "Fish Spill Manual" ) []\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( res, "Spring Fish Spill Season", @"t" )) THEN\ % "Constraint Evaluation" & ( ( STRINGIFY res ) CONCAT " Fish Spill Deficiency" ) [] := IF ( res & "Regulated Spill" [] < "SlotFromDataObject"( res, "Fish Spill Default" ) [] )\ THEN\ res & "Regulated Spill" [] - "SlotFromDataObject"( res, "Fish Spill Default" ) []\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( res, "Summer Fish Spill Season", @"t" )) THEN\ % "Constraint Evaluation" & ( ( STRINGIFY res ) CONCAT " Fish Spill Deficiency" ) [] := IF ( res & "Regulated Spill" [] < "SlotFromDataObject"( res, "Fish Spill Default" ) [] )\ THEN\ res & "Regulated Spill" [] - "SlotFromDataObject"( res, "Fish Spill Default" ) []\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ ELSE\ % "Constraint Evaluation" & ( ( STRINGIFY res ) CONCAT " Fish Spill Deficiency" ) [] := 0.00000000 "kcfs";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ % "Constraint Evaluation" & ( ( STRINGIFY res ) CONCAT " Fish Spill Deficiency" ) [] := IF ( res & "Regulated Spill" [] < "GrantFishSpill"( res, @"t" ) )\ THEN\ res & "Regulated Spill" [] - "GrantFishSpill"( res, @"t" )\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ ENDFOREACH;\ \ END;\ \ RULE "Nonfed Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Nonfed Request Deviation" [] := IF ( "Abs"( $ "Requests.Nonfed Delivered Energy" [] - $ "Requests.Total Nonfed Request" [] ) < 0.10000000 "MWH" )\ THEN\ 0.00000000 "MWH"\ ELSE\ $ "Requests.Nonfed Delivered Energy" [] - $ "Requests.Total Nonfed Request" []\ ENDIF;\ \ END;\ \ RULE "Federal Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Federal Request Deviation" [] := IF ( "Abs"( $ "Requests.Federal Delivered Energy" [] - $ "Federal Constraints.Adjusted Request" [] ) < 0.10000000 "MWH" )\ THEN\ 0.00000000 "MWH"\ ELSE\ $ "Requests.Federal Delivered Energy" [] - $ "Federal Constraints.Adjusted Request" []\ ENDIF;\ \ END;\ \ RULE "Priest Rapids Flow Bands";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Priest Rapids Flow Band Exceedance" [] := IF ( "IsActiveSeasonFromDates"( "Rearing Period", @"t" ) )\ THEN\ IF ( NOT IsNaN $ "Priest Rapids Constraints.Daily High Flow" [] AND NOT IsNaN $ "Priest Rapids Constraints.Daily Low Flow" [] AND $ "Priest Rapids Constraints.Daily High Flow" [] - $ "Priest Rapids Constraints.Daily Low Flow" [] > $ "Priest Rapids Constraints.Flow Bands" [] )\ THEN\ $ "Priest Rapids Constraints.Daily High Flow" [] - $ "Priest Rapids Constraints.Daily Low Flow" [] - $ "Priest Rapids Constraints.Flow Bands" []\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ END;\ \ RULE "Vernita Bar 8 Hours Below PLF";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Vernita Bar 8 Hours Below PLF Exceedance" [] := IF ( "IsActiveSeasonFromDates"( "PreHatch Period", @"t" ) )\ THEN\ IF ( "MaxItem"( "GetSlotValsNaNToZero"( $ "Vernita Bar.Outflow", @"t" - 8.00000000 "hr", @"t" ) ) < $ "Vernita Bar Constraints.Protection Level Flow" [] )\ THEN\ IF ( @"t" == @"Start Timestep" )\ THEN\ 1.00000000\ ELSE\ $ "Constraint Evaluation.Vernita Bar 8 Hours Below PLF Exceedance" [@"t" - 1.00000000 "hr"] + 1.00000000\ ENDIF\ ELSE\ 0.00000000\ ENDIF\ ELSE\ 0.00000000\ ENDIF;\ \ END;\ \ RULE "Vernita Bar Spawning Period Min Daylight Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Vernita Bar Spawning Period Min Daylight Flow Deficiency" [] := IF ( "IsActiveSeasonFromDates"( "Spawning Period", @"t" ) AND "IsDaylightHour"( @"t" ) )\ THEN\ WITH NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", @"t" ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" []\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default." DO\ IF ( $ "Vernita Bar.Outflow" [] < minFlow )\ THEN\ $ "Vernita Bar.Outflow" [] - minFlow\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDWITH\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ END;\ \ RULE "Vernita Bar Spawning Period Max Daylight Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Vernita Bar Spawning Period Max Daylight Flow Exceedance" [] := IF ( "IsActiveSeasonFromDates"( "Spawning Period", @"t" ) AND "IsDaylightHour"( @"t" ) )\ THEN\ WITH NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", @"t" ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" []\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default." DO\ IF ( $ "Vernita Bar.Outflow" [] > maxFlow )\ THEN\ $ "Vernita Bar.Outflow" [] - maxFlow\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDWITH\ ELSE\ 0.00000000 "kcfs"\ ENDIF;\ \ END;\ \ RULE "Vernita Bar Protection Level Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Constraint Evaluation.Vernita Bar Protection Level Flow Deficiency" [] := IF ( "IsPostHatchPeriod"( @"t" ) OR "IsEmergencePeriod"( @"t" ) )\ THEN\ IF ( $ "Vernita Bar.Outflow" [] < $ "Vernita Bar Constraints.Protection Level Flow" [] )\ THEN\ $ "Vernita Bar.Outflow" [] - $ "Vernita Bar Constraints.Protection Level Flow" []\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ IF ( $ "Vernita Bar.Outflow" [] < $ "Vernita Bar Constraints.Vernita Bar Min Flow" [] )\ THEN\ $ "Vernita Bar.Outflow" [] - $ "Vernita Bar Constraints.Vernita Bar Min Flow" []\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF;\ \ END;\ \ END;\ \ POLICY_GROUP "Post Processing";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Federal Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Federal Constraints.Bias" [] := $ "Grand Coulee Constraints.Bias" [] + $ "Chief Joseph Constraints.Bias" [];\ \ END;\ \ RULE "Federal Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Requests.Federal Delivered Energy" [] := $ "Grand Coulee Constraints.Delivered Energy" [] + $ "Chief Joseph Constraints.Delivered Energy" [];\ \ END;\ \ RULE "Flow Bands Max and Min Allowable";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (@"t" > @"1:00:00" AND "IsActiveSeasonFromDates"( "Rearing Period", @"t" )) THEN\ WITH_STATEMENT (NUMERIC prevMax = "MaxItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( @"t", @"1:00:00" ), @"t - 1" ) )) DO\ WITH_STATEMENT (NUMERIC prevMin = "MinItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( @"t", @"1:00:00" ), @"t - 1" ) )) DO\ $ "Priest Rapids Constraints.Flow Bands Max Allowable" [] := prevMin + $ "Priest Rapids Constraints.Flow Bands" [];\ \ $ "Priest Rapids Constraints.Flow Bands Min Allowable" [] := prevMax - $ "Priest Rapids Constraints.Flow Bands" [];\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "PRD Daily High and Low Flows for Plotting";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ("IsActiveSeasonFromDates"( "Rearing Period", @"t" ) AND ( @"t" == @"24:00:00" OR @"t" == @"Finish Timestep" )) THEN\ WITH_STATEMENT (NUMERIC dailyMax = "MaxItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( @"t", @"1:00:00" ), "DateMin"( "NextDate"( @"t", @"24:00:00" ), @"Finish Timestep" ) ) )) DO\ WITH_STATEMENT (NUMERIC dailyMin = "MinItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( @"t", @"1:00:00" ), "DateMin"( "NextDate"( @"t", @"24:00:00" ), @"Finish Timestep" ) ) )) DO\ FOREACH (DATETIME t IN "PreviousDate"( @"t", @"1:00:00" ) TO "DateMin"( "NextDate"( @"t", @"24:00:00" ), @"Finish Timestep" )) DO\ $ "Priest Rapids Constraints.Daily High Flow" [t] := dailyMax;\ \ $ "Priest Rapids Constraints.Daily Low Flow" [t] := dailyMin;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Total Nonfed Generation";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule sets the Total Nonfed Generation as calculated in the post-opt RBS.";\ $ "Requests.Total Nonfed Generation" [] := FOR ( OBJECT nonFedRes IN "NonFedReservoirs"( ) ) STAT_SUM\ nonFedRes & "Energy" []\ ENDFOR;\ \ END;\ \ END;\ \ POLICY_GROUP "Energy In Storage";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Total Energy In Storage Cumulative";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Nonfederal Data.Total Energy In Storage Cumulative" [] := FOR ( OBJECT res IN "ListSubbasin"( "Reservoir" ) ) STAT_SUM\ "SlotValueFromDataObject"( res, "Energy In Storage Cumulative", @"t" )\ ENDFOR;\ \ IF_STATEMENT (@"t" == @"Start Timestep") THEN\ $ "Nonfederal Data.Total Energy In Storage Cumulative" [@"Start Timestep - 1"] := FOR ( OBJECT res IN "ListSubbasin"( "Reservoir" ) ) STAT_SUM\ "SlotValueFromDataObject"( res, "Energy In Storage Cumulative", @"Start Timestep - 1" )\ ENDFOR;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Nonfed Energy In Storage Cumulative";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Nonfederal Data.NonFederal Energy In Storage Cumulative" [] := FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "SlotValueFromDataObject"( res, "Energy In Storage Cumulative", @"t" )\ ENDFOR;\ \ IF_STATEMENT (@"t" == @"Start Timestep") THEN\ $ "Nonfederal Data.NonFederal Energy In Storage Cumulative" [@"Start Timestep - 1"] := FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "SlotValueFromDataObject"( res, "Energy In Storage Cumulative", @"Start Timestep - 1" )\ ENDFOR;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Energy In Storage Cumulative By Reservoir";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "ListSubbasin"( "Reservoir" )) DO\ "SlotFromDataObject"( res, "Energy In Storage Cumulative" ) [] := ( res & "Storage" [] - "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ) ) * "CumulDownstreamPowerCoeffApprox"( res, @"t" );\ \ ENDFOREACH;\ \ DESCRIPTION "Also calculate Energy In Storage Cumulative on the initial timestep";\ IF_STATEMENT (@"t" == @"Start Timestep") THEN\ FOREACH (OBJECT res IN "ListSubbasin"( "Reservoir" )) DO\ "SlotFromDataObject"( res, "Energy In Storage Cumulative" ) [@"Start Timestep - 1"] := ( res & "Storage" [@"Start Timestep - 1"] - "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ) ) * "CumulDownstreamPowerCoeffApprox"( res, @"t" );\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Nonfed Energy In Storage";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Nonfederal Data.Energy In Storage" [] := FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Energy In Storage" []\ ENDFOR;\ \ IF_STATEMENT (@"t" == @"Start Timestep") THEN\ $ "Nonfederal Data.Energy In Storage" [@"Start Timestep - 1"] := FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Energy In Storage" [@"Start Timestep - 1"]\ ENDFOR;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Energy In Storage By Reservoir Initial Timestep";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DESCRIPTION "We need to set this by a rule on the initial timestep because it does not get calculated
    automatically.";\ IF_STATEMENT (@"t" == @"Start Timestep") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ res & "Energy In Storage" [@"Start Timestep - 1"] := "TableInterpolation"( res & "Energy In Storage Table", 0.00000000, 1.00000000, res & "Pool Elevation" [@"Start Timestep - 1"], @"Start Timestep - 1" );\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Evaluate Nonfed Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Total Hours Met Nonfed Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT @"t" == @"Finish Timestep";\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC hoursMet = "SumSlot"( $ "Nonfederal Data.Met Nonfed Request", @"Start Timestep", @"Finish Timestep" )) DO\ $ "Nonfederal Data.Met Nonfed Request Total Hours" [@"Start Timestep"] := hoursMet;\ \ IF_STATEMENT (hoursMet < LENGTH @"Start Timestep" TO @"Finish Timestep") THEN\ WARNING_STATEMENT "Nonfed Request was only met for the first " CONCAT hoursMet CONCAT " hours of the run.";\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Set Met Nonfed Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Nonfederal Data.Met Nonfed Request" [] := IF ( $ "Requests.Nonfed Delivered Energy" [] >= $ "Requests.Total Nonfed Request" [] - 0.01000000 "MWH" AND $ "Requests.Nonfed Delivered Energy" [] <= $ "Requests.Total Nonfed Request" [] + 0.01000000 "MWH" AND ( @"t" == @"Start Timestep" OR $ "Nonfederal Data.Met Nonfed Request" [@"t - 1"] == 1.00000000 ) )\ THEN\ 1.00000000\ ELSE\ 0.00000000\ ENDIF;\ \ END;\ \ END;\ \ POLICY_GROUP "Set optimal Reservoir outflows";\ DESCRIPTION "The basic form of the the rules in this group is
    Res.Turbine Release[] = OptValue(Res.Turbine Release, @"t")
    Res.Regulated Spill[] = OptValue(Res.Regulated Spill, @"t")

    In some cases linear approximations in Optimization could result in a Turbine Capacity approximation in Optimization that is larger than the actual Turbine Capacity in Simulation for the same Outflows and Storages. This could allow Optimization to set a Turbine Release that is slightly larger than the Turbine Capacity in Simulation, which would cause the run to abort. To protect agains this, the rules set Turbine Release to the smaller of the Optimization Value for Turbine Release or the Turbine Capacity that would result in Simulation based on the Storages and Outflows from Optimization. If the Turbine Release is reduced from the Optimization value, Regulated Spill will be increased by the same amount so that the overall mass balance is the same between Optimization and Post-optimization Rulebased Simulation.";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Grand Coulee Outflow";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee.Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee.Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Turbine Release";\ \ ELSE\ $ "Grand Coulee.Turbine Release" [] := "Min"( "OptValue"( $ "Grand Coulee.Turbine Release", @"t" ), "TableInterpolation"( $ "Grand Coulee.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Grand Coulee", @"t" ), @"t" ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee already has a Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ($ "Grand Coulee.Regulated Spill" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee.Regulated Spill", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Regulated Spill";\ \ ELSE\ $ "Grand Coulee.Regulated Spill" [] := "OptValue"( $ "Grand Coulee.Regulated Spill", @"t" ) + ( "OptValue"( $ "Grand Coulee.Turbine Release", @"t" ) - "Min"( "OptValue"( $ "Grand Coulee.Turbine Release", @"t" ), "TableInterpolation"( $ "Grand Coulee.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Grand Coulee", @"t" ), @"t" ) ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee already has a Regulated Spill value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Outflow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph.Outflow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph.Outflow", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Outflow";\ \ ELSE\ $ "Chief Joseph.Outflow" [] := "OptValue"( $ "Chief Joseph.Outflow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph already has a Outflow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Outflow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ("FourProjectCoordination"( )) THEN\ $ "Wells.Outflow" [] := "OptValue"( $ "Wells.Outflow", @"t" );\ \ ELSE\ IF_STATEMENT (IsNaN $ "Wells.Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells.Turbine Release", @"t" )) THEN\ PRINT "No optimal value forWells Turbine Release";\ \ ELSE\ $ "Wells.Turbine Release" [] := "Min"( "OptValue"( $ "Wells.Turbine Release", @"t" ), "TableInterpolation"( $ "Wells.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Wells", @"t" ), @"t" ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells already has a Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ($ "Wells.Regulated Spill" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells.Regulated Spill", @"t" )) THEN\ PRINT "No optimal value for Wells Regulated Spill";\ \ ELSE\ $ "Wells.Regulated Spill" [] := "OptValue"( $ "Wells.Regulated Spill", @"t" ) + ( "OptValue"( $ "Wells.Turbine Release", @"t" ) - "Min"( "OptValue"( $ "Wells.Turbine Release", @"t" ), "TableInterpolation"( $ "Wells.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Wells", @"t" ), @"t" ) ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells already has a Regulated Spill value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Outflow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ($ "Rock Island.Bypass" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island.Bypass", @"t" )) THEN\ PRINT "No optimal value for Rock Island Bypass";\ \ ELSE\ $ "Rock Island.Bypass" [] := "OptValue"( $ "Rock Island.Bypass", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island already has a Bypass value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Rock Island.Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island.Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Rock Island Turbine Release";\ \ ELSE\ $ "Rock Island.Turbine Release" [] := "Min"( "OptValue"( $ "Rock Island.Turbine Release", @"t" ), "TableInterpolation"( $ "Rock Island.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Rock Island", @"t" ), @"t" ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island already has a Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ($ "Rock Island.Regulated Spill" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island.Regulated Spill", @"t" )) THEN\ PRINT "No optimal value for Rock Island Regulated Spill";\ \ ELSE\ $ "Rock Island.Regulated Spill" [] := "OptValue"( $ "Rock Island.Regulated Spill", @"t" ) + ( "OptValue"( $ "Rock Island.Turbine Release", @"t" ) - "Min"( "OptValue"( $ "Rock Island.Turbine Release", @"t" ), "TableInterpolation"( $ "Rock Island.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Rock Island", @"t" ), @"t" ) ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island already has a Regulated Spill value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Outflow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ($ "Rocky Reach.Bypass" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach.Bypass", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Bypass";\ \ ELSE\ $ "Rocky Reach.Bypass" [] := "OptValue"( $ "Rocky Reach.Bypass", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach already has a Bypass value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Rocky Reach.Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach.Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Turbine Release";\ \ ELSE\ $ "Rocky Reach.Turbine Release" [] := "Min"( "OptValue"( $ "Rocky Reach.Turbine Release", @"t" ), "TableInterpolation"( $ "Rocky Reach.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSimTW2D"( % "Rocky Reach", @"t" ), @"t" ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach already has a Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ($ "Rocky Reach.Regulated Spill" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach.Regulated Spill", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Regulated Spill";\ \ ELSE\ $ "Rocky Reach.Regulated Spill" [] := "OptValue"( $ "Rocky Reach.Regulated Spill", @"t" ) + ( "OptValue"( $ "Rocky Reach.Turbine Release", @"t" ) - "Min"( "OptValue"( $ "Rocky Reach.Turbine Release", @"t" ), "TableInterpolation"( $ "Rocky Reach.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSimTW2D"( % "Rocky Reach", @"t" ), @"t" ) ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach already has a Regulated Spill value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Outflow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids.Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids.Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Turbine Release";\ \ ELSE\ $ "Priest Rapids.Turbine Release" [] := "Min"( "OptValue"( $ "Priest Rapids.Turbine Release", @"t" ), "TableInterpolation"( $ "Priest Rapids.Auto Max Turbine Q", 0.00000000, 1.00000000, ( "StorageToElevation"( % "Priest Rapids", "OptValForPostOptSim"( % "Priest Rapids" & "Storage", @"t" ) ) + "StorageToElevation"( % "Priest Rapids", "OptValForPostOptSim"( % "Priest Rapids" & "Storage", @"t" - 1.00000000 "hr" ) ) ) / 2.00000000 - "TableInterpolation"( $ "Priest Rapids.Tailwater Table", 0.00000000, 1.00000000, "OptValForPostOptSim"( % "Priest Rapids" & "Outflow", @"t" ), @"t" ), @"t" ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids already has a Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ($ "Priest Rapids.Regulated Spill" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids.Regulated Spill", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Regulated Spill";\ \ ELSE\ $ "Priest Rapids.Regulated Spill" [] := "OptValue"( $ "Priest Rapids.Regulated Spill", @"t" ) + ( "OptValue"( $ "Priest Rapids.Turbine Release", @"t" ) - "Min"( "OptValue"( $ "Priest Rapids.Turbine Release", @"t" ), "TableInterpolation"( $ "Priest Rapids.Auto Max Turbine Q", 0.00000000, 1.00000000, ( "StorageToElevation"( % "Priest Rapids", "OptValForPostOptSim"( % "Priest Rapids" & "Storage", @"t" ) ) + "StorageToElevation"( % "Priest Rapids", "OptValForPostOptSim"( % "Priest Rapids" & "Storage", @"t" - 1.00000000 "hr" ) ) ) / 2.00000000 - "TableInterpolation"( $ "Priest Rapids.Tailwater Table", 0.00000000, 1.00000000, "OptValForPostOptSim"( % "Priest Rapids" & "Outflow", @"t" ), @"t" ), @"t" ) ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids already has a Regulated Spill value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Outflow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum.Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum.Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Wanapum Turbine Release";\ \ ELSE\ $ "Wanapum.Turbine Release" [] := "Min"( "OptValue"( $ "Wanapum.Turbine Release", @"t" ), "TableInterpolation"( $ "Wanapum.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Wanapum", @"t" ), @"t" ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum already has a Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ($ "Wanapum.Regulated Spill" [] == 0.00000000 "cfs") THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum.Regulated Spill", @"t" )) THEN\ PRINT "No optimal value for Wanapum Regulated Spill";\ \ ELSE\ $ "Wanapum.Regulated Spill" [] := "OptValue"( $ "Wanapum.Regulated Spill", @"t" ) + ( "OptValue"( $ "Wanapum.Turbine Release", @"t" ) - "Min"( "OptValue"( $ "Wanapum.Turbine Release", @"t" ), "TableInterpolation"( $ "Wanapum.Auto Max Turbine Q", 0.00000000, 1.00000000, "OHCalcForPostOptSim"( % "Wanapum", @"t" ), @"t" ) ) );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum already has a Regulated Spill value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Priest Rapids User Defined Variables";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Priest Rapids Constraints Daily Low Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Daily Low Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Daily Low Flow", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Daily Low Flow";\ \ ELSE\ $ "Priest Rapids Constraints.Daily Low Flow" [] := "OptValue"( $ "Priest Rapids Constraints.Daily Low Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Daily Low Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Daily High Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Daily High Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Daily High Flow", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Daily High Flow";\ \ ELSE\ $ "Priest Rapids Constraints.Daily High Flow" [] := "OptValue"( $ "Priest Rapids Constraints.Daily High Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Daily High Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Chief Joseph User Defined Variables";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Chief Joseph Constraints Revised Request As Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Revised Request As Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Revised Request As Flow", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Revised Request As Flow";\ \ ELSE\ $ "Chief Joseph Constraints.Revised Request As Flow" [] := "OptValue"( $ "Chief Joseph Constraints.Revised Request As Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Revised Request As Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Delivered Energy" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Delivered Energy", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Delivered Energy";\ \ ELSE\ $ "Chief Joseph Constraints.Delivered Energy" [] := "OptValue"( $ "Chief Joseph Constraints.Delivered Energy", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Delivered Energy value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Bias" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Bias", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Bias";\ \ ELSE\ $ "Chief Joseph Constraints.Bias" [] := "OptValue"( $ "Chief Joseph Constraints.Bias", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Bias value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Bias Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Chief Joseph Constraints.Bias Flow" [] := "OptValue"( $ "Chief Joseph Constraints.Bias Flow", @"t" );\ \ $ "Chief Joseph Constraints.Bias Flow Combined" [] := "OptValue"( $ "Chief Joseph Constraints.Bias Flow Combined", @"t" );\ \ END;\ \ RULE "Set Chief Joseph Constraints Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Accumulated Exchange" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Accumulated Exchange", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Accumulated Exchange";\ \ ELSE\ $ "Chief Joseph Constraints.Accumulated Exchange" [] := "OptValue"( $ "Chief Joseph Constraints.Accumulated Exchange", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Accumulated Exchange value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Grand Coulee User Defined Variables";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Grand Coulee Constraints Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Delivered Energy" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Delivered Energy", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Delivered Energy";\ \ ELSE\ $ "Grand Coulee Constraints.Delivered Energy" [] := "OptValue"( $ "Grand Coulee Constraints.Delivered Energy", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Delivered Energy value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Bias" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Bias", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Bias";\ \ ELSE\ $ "Grand Coulee Constraints.Bias" [] := "OptValue"( $ "Grand Coulee Constraints.Bias", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Bias value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Bias Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Bias Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Bias Flow", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Bias Flow";\ \ ELSE\ $ "Grand Coulee Constraints.Bias Flow" [] := "OptValue"( $ "Grand Coulee Constraints.Bias Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Bias Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Accumulated Exchange" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Accumulated Exchange", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Accumulated Exchange";\ \ ELSE\ $ "Grand Coulee Constraints.Accumulated Exchange" [] := "OptValue"( $ "Grand Coulee Constraints.Accumulated Exchange", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Accumulated Exchange value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Other User Defined Variables";\ DESCRIPTION "Set user defined variable slots at the current timestep to the value computed for the corresponding variable by the last optimization problem solution (objective).";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Requests Nonfed Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Requests.Nonfed Delivered Energy" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Requests.Nonfed Delivered Energy", @"t" )) THEN\ PRINT "No optimal value for Requests Nonfed Delivered Energy";\ \ ELSE\ $ "Requests.Nonfed Delivered Energy" [] := "OptValue"( $ "Requests.Nonfed Delivered Energy", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Requests already has a Nonfed Delivered Energy value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Anticipated Load Shift";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Anticipated Load Shift" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Anticipated Load Shift", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Anticipated Load Shift";\ \ ELSE\ $ "Federal Constraints.Anticipated Load Shift" [] := "OptValue"( $ "Federal Constraints.Anticipated Load Shift", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has an Anticipated Load Shift value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Minimized Ending Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Minimized Ending Accumulated Exchange" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Minimized Ending Accumulated Exchange", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Minimized Ending Accumulated Exchange";\ \ ELSE\ $ "Federal Constraints.Minimized Ending Accumulated Exchange" [] := "OptValue"( $ "Federal Constraints.Minimized Ending Accumulated Exchange", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Minimized Ending Accumulated Exchange value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Maximized Ending Federal Storage";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Maximized Ending Federal Storage" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Maximized Ending Federal Storage", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Maximized Ending Federal Storage";\ \ ELSE\ $ "Federal Constraints.Maximized Ending Federal Storage" [] := "OptValue"( $ "Federal Constraints.Maximized Ending Federal Storage", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Maximized Ending Federal Storage value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Bias Reshaped";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Federal Constraints.Bias Reshaped" [] := "OptValue"( $ "Federal Constraints.Bias Reshaped", @"t" );\ \ END;\ \ RULE "Set Federal Constraints Bias Before Reshaping";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ $ "Federal Constraints.Bias Before Reshaping" [] := "OptValue"( $ "Federal Constraints.Bias Before Reshaping", @"t" );\ \ END;\ \ END;\ \ POLICY_GROUP "HK Weights";\ DESCRIPTION "Set user defined variable slots at the current timestep to the value computed for the corresponding variable by the last optimization problem solution (objective).";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Set Rocky Reach Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Rocky Reach Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Rocky Reach Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Rocky Reach Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Rocky Reach Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints Shifted Operating Head";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Shifted Operating Head" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Shifted Operating Head", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Shifted Operating Head";\ \ ELSE\ $ "Rocky Reach Constraints.Shifted Operating Head" [] := "OptValue"( $ "Rocky Reach Constraints.Shifted Operating Head", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Shifted Operating Head value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints Shifted Turbine Release";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Shifted Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Shifted Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Shifted Turbine Release";\ \ ELSE\ $ "Rocky Reach Constraints.Shifted Turbine Release" [] := "OptValue"( $ "Rocky Reach Constraints.Shifted Turbine Release", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Shifted Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints Efficiency";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Efficiency" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Efficiency", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Efficiency";\ \ ELSE\ $ "Rocky Reach Constraints.Efficiency" [] := "OptValue"( $ "Rocky Reach Constraints.Efficiency", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Efficiency value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HK";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HK" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HK", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HK";\ \ ELSE\ $ "Rocky Reach Constraints.HK" [] := "OptValue"( $ "Rocky Reach Constraints.HK", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HK value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_0" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_0", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_0";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_0" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_0", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_0 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_1" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_1", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_1";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_1" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_1", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_1 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_10" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_10", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_10";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_10" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_10", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_10 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_11" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_11", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_11";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_11" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_11", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_11 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_12" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_12", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_12";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_12" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_12", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_12 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_13" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_13", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_13";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_13" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_13", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_13 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_14" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_14", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_14";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_14" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_14", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_14 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_15" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_15", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_15";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_15" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_15", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_15 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_16" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_16", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_16";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_16" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_16", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_16 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_17" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_17", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_17";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_17" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_17", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_17 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_18" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_18", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_18";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_18" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_18", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_18 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_19" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_19", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_19";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_19" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_19", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_19 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_2" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_2", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_2";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_2" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_2", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_2 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_20" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_20", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_20";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_20" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_20", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_20 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_21" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_21", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_21";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_21" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_21", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_21 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_22" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_22", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_22";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_22" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_22", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_22 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_23" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_23", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_23";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_23" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_23", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_23 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_24" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_24", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_24";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_24" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_24", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_24 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_25" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_25", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_25";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_25" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_25", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_25 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_3" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_3", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_3";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_3" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_3", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_3 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_4" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_4", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_4";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_4" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_4", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_4 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_5" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_5", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_5";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_5" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_5", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_5 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_6" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_6", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_6";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_6" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_6", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_6 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_7" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_7", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_7";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_7" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_7", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_7 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_8" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_8", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_8";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_8" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_8", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_8 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_9" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_9", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_9";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_9" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_9", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_9 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_26";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_26" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_26", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_26";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_26" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_26", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_26 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_27";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_27" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_27", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_27";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_27" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_27", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_27 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_28";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_28" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_28", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_28";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_28" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_28", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_28 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_29";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_29" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_29", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_29";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_29" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_29", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_29 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_30";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_30" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_30", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_30";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_30" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_30", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_30 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_31";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_31" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_31", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_31";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_31" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_31", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_31 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_32";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_32" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_32", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_32";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_32" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_32", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_32 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_33";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_33" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_33", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_33";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_33" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_33", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_33 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_34";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_34" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_34", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_34";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_34" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_34", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_34 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_35";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_35" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_35", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_35";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_35" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_35", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_35 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_36";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_36" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_36", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_36";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_36" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_36", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_36 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_37";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_37" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_37", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_37";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_37" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_37", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_37 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_40";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_40" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_40", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_40";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_40" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_40", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_40 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_41";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_41" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_41", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_41";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_41" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_41", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_41 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_42";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_42" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_42", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_42";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_42" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_42", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_42 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_43";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_43" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_43", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_43";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_43" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_43", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_43 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_44";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_44" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_44", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_44";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_44" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_44", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_44 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_45";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_45" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_45", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_45";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_45" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_45", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_45 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_46";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_46" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_46", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_46";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_46" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_46", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_46 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_47";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_47" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_47", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_47";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_47" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_47", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_47 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_48";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_48" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_48", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_48";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_48" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_48", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_48 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_49";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_49" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_49", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_49";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_49" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_49", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_49 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_50";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_50" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_50", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_50";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_50" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_50", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_50 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_51";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_51" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_51", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_51";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_51" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_51", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_51 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_52";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_52" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_52", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_52";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_52" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_52", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_52 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_54";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_54" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_54", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_54";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_54" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_54", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_54 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_55";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_55" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_55", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_55";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_55" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_55", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_55 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_56";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_56" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_56", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_56";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_56" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_56", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_56 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_57";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_57" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_57", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_57";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_57" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_57", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_57 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_58";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_58" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_58", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_58";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_58" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_58", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_58 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_59";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_59" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_59", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_59";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_59" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_59", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_59 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_60";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_60" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_60", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_60";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_60" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_60", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_60 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_61";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_61" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_61", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_61";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_61" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_61", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_61 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_62";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_62" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_62", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_62";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_62" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_62", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_62 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_63";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_63" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_63", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_63";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_63" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_63", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_63 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_64";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_64" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_64", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_64";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_64" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_64", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_64 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_65";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_65" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_65", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_65";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_65" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_65", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_65 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_66";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_66" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_66", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_66";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_66" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_66", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_66 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_67";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_67" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_67", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_67";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_67" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_67", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_67 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_68";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_68" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_68", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_68";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_68" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_68", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_68 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_69";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_69" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_69", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_69";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_69" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_69", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_69 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_70";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_70" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_70", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_70";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_70" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_70", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_70 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_71";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_71" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_71", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_71";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_71" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_71", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_71 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_72";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_72" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_72", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_72";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_72" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_72", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_72 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_73";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_73" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_73", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_73";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_73" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_73", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_73 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_74";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_74" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_74", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_74";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_74" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_74", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_74 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_75";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_75" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_75", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_75";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_75" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_75", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_75 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_100";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_100" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_100", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_100";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_100" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_100", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_100 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_76";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_76" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_76", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_76";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_76" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_76", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_76 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_77";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_77" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_77", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_77";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_77" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_77", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_77 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_78";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_78" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_78", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_78";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_78" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_78", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_78 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_79";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_79" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_79", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_79";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_79" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_79", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_79 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_80";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_80" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_80", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_80";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_80" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_80", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_80 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_81";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_81" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_81", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_81";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_81" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_81", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_81 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_82";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_82" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_82", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_82";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_82" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_82", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_82 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_83";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_83" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_83", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_83";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_83" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_83", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_83 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_84";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_84" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_84", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_84";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_84" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_84", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_84 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_85";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_85" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_85", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_85";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_85" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_85", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_85 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_86";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_86" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_86", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_86";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_86" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_86", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_86 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_87";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_87" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_87", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_87";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_87" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_87", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_87 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_88";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_88" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_88", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_88";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_88" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_88", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_88 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_89";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_89" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_89", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_89";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_89" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_89", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_89 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_90";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_90" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_90", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_90";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_90" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_90", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_90 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_91";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_91" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_91", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_91";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_91" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_91", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_91 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_92";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_92" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_92", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_92";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_92" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_92", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_92 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_93";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_93" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_93", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_93";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_93" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_93", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_93 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_94";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_94" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_94", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_94";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_94" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_94", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_94 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_95";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_95" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_95", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_95";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_95" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_95", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_95 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_96";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_96" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_96", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_96";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_96" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_96", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_96 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_97";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_97" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_97", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_97";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_97" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_97", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_97 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_98";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_98" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_98", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_98";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_98" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_98", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_98 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_99";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_99" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_99", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_99";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_99" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_99", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_99 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_101";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_101" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_101", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_101";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_101" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_101", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_101 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_102";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_102" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_102", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_102";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_102" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_102", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_102 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_103";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_103" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_103", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_103";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_103" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_103", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_103 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_104";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_104" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_104", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_104";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_104" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_104", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_104 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_105";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_105" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_105", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_105";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_105" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_105", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_105 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_106";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_106" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_106", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_106";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_106" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_106", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_106 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_107";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_107" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_107", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_107";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_107" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_107", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_107 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_108";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_108" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_108", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_108";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_108" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_108", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_108 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_109";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_109" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_109", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_109";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_109" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_109", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_109 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_110";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_110" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_110", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_110";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_110" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_110", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_110 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_111";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_111" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_111", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_111";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_111" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_111", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_111 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_112";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_112" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_112", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_112";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_112" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_112", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_112 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_113";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_113" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_113", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_113";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_113" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_113", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_113 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_114";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_114" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_114", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_114";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_114" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_114", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_114 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_115";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_115" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_115", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_115";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_115" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_115", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_115 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_116";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_116" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_116", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_116";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_116" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_116", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_116 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_117";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_117" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_117", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_117";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_117" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_117", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_117 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_118";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_118" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_118", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_118";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_118" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_118", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_118 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_119";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_119" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_119", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_119";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_119" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_119", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_119 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_120";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_120" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_120", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_120";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_120" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_120", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_120 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_121";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_121" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_121", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_121";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_121" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_121", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_121 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_122";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_122" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_122", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_122";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_122" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_122", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_122 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_123";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_123" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_123", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_123";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_123" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_123", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_123 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_124";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_124" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_124", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_124";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_124" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_124", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_124 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_125";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_125" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_125", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_125";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_125" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_125", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_125 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_126";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_126" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_126", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_126";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_126" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_126", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_126 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_127";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_127" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_127", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_127";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_127" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_127", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_127 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_128";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_128" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_128", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_128";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_128" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_128", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_128 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_129";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_129" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_129", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_129";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_129" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_129", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_129 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_130";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_130" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_130", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_130";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_130" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_130", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_130 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_131";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_131" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_131", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_131";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_131" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_131", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_131 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_132";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_132" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_132", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_132";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_132" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_132", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_132 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_133";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_133" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_133", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_133";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_133" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_133", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_133 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_134";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_134" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_134", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_134";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_134" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_134", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_134 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_135";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_135" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_135", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_135";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_135" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_135", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_135 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_136";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_136" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_136", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_136";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_136" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_136", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_136 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_137";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_137" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_137", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_137";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_137" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_137", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_137 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_138";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_138" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_138", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_138";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_138" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_138", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_138 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_139";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_139" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_139", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_139";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_139" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_139", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_139 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_140";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_140" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_140", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_140";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_140" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_140", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_140 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_141";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_141" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_141", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_141";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_141" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_141", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_141 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_142";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_142" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_142", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_142";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_142" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_142", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_142 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_143";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_143" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_143", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_143";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_143" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_143", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_143 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_144";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_144" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_144", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_144";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_144" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_144", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_144 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_145";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_145" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_145", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_145";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_145" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_145", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_145 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_146";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_146" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_146", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_146";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_146" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_146", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_146 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_147";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_147" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_147", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_147";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_147" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_147", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_147 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_148";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_148" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_148", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_148";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_148" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_148", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_148 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_149";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_149" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_149", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_149";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_149" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_149", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_149 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_150";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_150" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_150", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_150";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_150" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_150", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_150 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_151";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_151" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_151", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_151";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_151" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_151", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_151 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_152";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_152" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_152", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_152";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_152" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_152", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_152 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_153";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_153" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_153", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_153";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_153" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_153", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_153 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_154";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_154" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_154", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_154";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_154" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_154", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_154 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_155";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_155" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_155", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_155";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_155" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_155", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_155 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_156";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_156" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_156", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_156";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_156" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_156", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_156 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_157";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_157" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_157", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_157";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_157" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_157", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_157 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_158";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_158" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_158", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_158";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_158" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_158", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_158 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_159";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_159" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_159", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_159";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_159" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_159", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_159 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_160";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_160" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_160", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_160";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_160" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_160", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_160 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_161";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_161" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_161", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_161";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_161" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_161", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_161 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_162";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_162" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_162", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_162";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_162" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_162", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_162 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_163";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_163" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_163", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_163";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_163" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_163", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_163 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_164";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_164" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_164", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_164";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_164" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_164", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_164 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_165";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_165" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_165", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_165";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_165" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_165", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_165 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_166";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_166" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_166", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_166";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_166" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_166", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_166 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_167";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_167" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_167", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_167";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_167" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_167", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_167 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_168";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_168" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_168", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_168";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_168" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_168", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_168 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_169";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_169" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_169", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_169";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_169" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_169", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_169 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_170";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_170" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_170", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_170";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_170" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_170", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_170 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_171";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_171" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_171", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_171";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_171" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_171", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_171 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_172";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_172" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_172", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_172";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_172" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_172", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_172 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_173";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_173" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_173", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_173";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_173" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_173", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_173 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_174";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_174" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_174", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_174";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_174" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_174", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_174 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_175";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_175" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_175", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_175";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_175" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_175", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_175 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_176";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_176" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_176", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_176";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_176" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_176", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_176 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_177";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_177" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_177", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_177";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_177" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_177", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_177 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_178";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_178" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_178", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_178";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_178" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_178", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_178 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_179";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_179" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_179", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_179";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_179" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_179", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_179 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_180";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_180" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_180", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_180";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_180" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_180", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_180 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_181";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_181" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_181", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_181";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_181" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_181", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_181 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_182";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_182" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_182", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_182";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_182" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_182", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_182 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_183";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_183" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_183", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_183";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_183" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_183", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_183 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_184";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_184" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_184", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_184";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_184" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_184", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_184 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_185";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_185" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_185", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_185";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_185" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_185", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_185 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_186";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_186" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_186", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_186";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_186" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_186", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_186 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_187";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_187" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_187", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_187";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_187" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_187", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_187 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_188";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_188" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_188", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_188";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_188" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_188", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_188 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_189";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_189" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_189", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_189";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_189" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_189", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_189 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_190";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_190" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_190", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_190";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_190" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_190", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_190 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_191";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_191" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_191", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_191";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_191" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_191", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_191 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_192";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_192" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_192", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_192";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_192" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_192", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_192 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_193";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_193" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_193", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_193";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_193" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_193", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_193 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_194";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_194" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_194", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_194";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_194" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_194", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_194 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_195";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_195" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_195", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_195";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_195" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_195", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_195 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_196";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_196" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_196", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_196";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_196" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_196", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_196 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_197";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_197" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_197", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_197";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_197" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_197", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_197 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_198";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_198" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_198", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_198";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_198" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_198", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_198 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_199";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_199" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_199", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_199";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_199" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_199", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_199 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_200";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_200" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_200", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_200";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_200" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_200", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_200 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_201";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_201" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_201", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_201";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_201" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_201", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_201 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_202";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_202" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_202", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_202";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_202" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_202", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_202 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_203";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_203" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_203", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_203";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_203" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_203", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_203 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_204";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_204" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_204", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_204";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_204" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_204", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_204 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_205";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_205" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_205", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_205";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_205" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_205", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_205 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_206";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_206" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_206", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_206";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_206" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_206", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_206 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_207";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_207" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_207", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_207";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_207" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_207", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_207 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_208";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_208" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_208", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_208";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_208" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_208", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_208 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_209";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_209" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_209", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_209";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_209" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_209", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_209 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_210";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_210" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_210", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_210";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_210" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_210", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_210 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_211";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_211" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_211", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_211";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_211" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_211", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_211 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_212";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_212" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_212", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_212";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_212" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_212", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_212 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_213";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_213" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_213", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_213";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_213" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_213", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_213 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_214";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_214" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_214", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_214";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_214" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_214", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_214 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_215";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_215" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_215", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_215";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_215" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_215", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_215 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_216";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_216" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_216", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_216";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_216" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_216", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_216 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_217";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_217" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_217", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_217";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_217" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_217", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_217 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_218";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_218" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_218", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_218";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_218" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_218", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_218 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_219";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_219" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_219", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_219";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_219" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_219", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_219 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_220";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_220" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_220", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_220";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_220" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_220", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_220 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_221";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_221" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_221", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_221";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_221" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_221", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_221 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_222";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_222" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_222", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_222";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_222" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_222", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_222 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_223";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_223" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_223", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_223";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_223" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_223", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_223 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_224";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_224" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_224", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_224";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_224" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_224", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_224 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_225";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_225" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_225", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_225";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_225" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_225", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_225 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_38";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_38" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_38", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_38";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_38" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_38", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_38 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_39";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_39" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_39", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_39";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_39" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_39", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_39 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints HKWeight_53";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.HKWeight_53" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.HKWeight_53", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints HKWeight_53";\ \ ELSE\ $ "Rocky Reach Constraints.HKWeight_53" [] := "OptValue"( $ "Rocky Reach Constraints.HKWeight_53", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a HKWeight_53 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Wells Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Wells Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Wells Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Wells Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Shifted Operating Head";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Shifted Operating Head" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Shifted Operating Head", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Shifted Operating Head";\ \ ELSE\ $ "Wells Constraints.Shifted Operating Head" [] := "OptValue"( $ "Wells Constraints.Shifted Operating Head", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Shifted Operating Head value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Shifted Turbine Release";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Shifted Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Shifted Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Shifted Turbine Release";\ \ ELSE\ $ "Wells Constraints.Shifted Turbine Release" [] := "OptValue"( $ "Wells Constraints.Shifted Turbine Release", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Shifted Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Efficiency";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Efficiency" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Efficiency", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Efficiency";\ \ ELSE\ $ "Wells Constraints.Efficiency" [] := "OptValue"( $ "Wells Constraints.Efficiency", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Efficiency value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HK";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HK" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HK", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HK";\ \ ELSE\ $ "Wells Constraints.HK" [] := "OptValue"( $ "Wells Constraints.HK", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HK value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_0" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_0", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_0";\ \ ELSE\ $ "Wells Constraints.HKWeight_0" [] := "OptValue"( $ "Wells Constraints.HKWeight_0", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_0 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_1" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_1", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_1";\ \ ELSE\ $ "Wells Constraints.HKWeight_1" [] := "OptValue"( $ "Wells Constraints.HKWeight_1", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_1 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_25" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_25", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_25";\ \ ELSE\ $ "Wells Constraints.HKWeight_25" [] := "OptValue"( $ "Wells Constraints.HKWeight_25", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_25 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_2" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_2", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_2";\ \ ELSE\ $ "Wells Constraints.HKWeight_2" [] := "OptValue"( $ "Wells Constraints.HKWeight_2", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_2 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_3" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_3", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_3";\ \ ELSE\ $ "Wells Constraints.HKWeight_3" [] := "OptValue"( $ "Wells Constraints.HKWeight_3", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_3 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_4" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_4", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_4";\ \ ELSE\ $ "Wells Constraints.HKWeight_4" [] := "OptValue"( $ "Wells Constraints.HKWeight_4", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_4 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_5" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_5", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_5";\ \ ELSE\ $ "Wells Constraints.HKWeight_5" [] := "OptValue"( $ "Wells Constraints.HKWeight_5", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_5 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_6" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_6", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_6";\ \ ELSE\ $ "Wells Constraints.HKWeight_6" [] := "OptValue"( $ "Wells Constraints.HKWeight_6", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_6 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_7" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_7", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_7";\ \ ELSE\ $ "Wells Constraints.HKWeight_7" [] := "OptValue"( $ "Wells Constraints.HKWeight_7", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_7 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_8" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_8", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_8";\ \ ELSE\ $ "Wells Constraints.HKWeight_8" [] := "OptValue"( $ "Wells Constraints.HKWeight_8", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_8 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_9" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_9", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_9";\ \ ELSE\ $ "Wells Constraints.HKWeight_9" [] := "OptValue"( $ "Wells Constraints.HKWeight_9", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_9 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_10" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_10", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_10";\ \ ELSE\ $ "Wells Constraints.HKWeight_10" [] := "OptValue"( $ "Wells Constraints.HKWeight_10", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_10 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_11" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_11", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_11";\ \ ELSE\ $ "Wells Constraints.HKWeight_11" [] := "OptValue"( $ "Wells Constraints.HKWeight_11", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_11 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_12" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_12", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_12";\ \ ELSE\ $ "Wells Constraints.HKWeight_12" [] := "OptValue"( $ "Wells Constraints.HKWeight_12", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_12 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_13" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_13", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_13";\ \ ELSE\ $ "Wells Constraints.HKWeight_13" [] := "OptValue"( $ "Wells Constraints.HKWeight_13", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_13 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_14" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_14", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_14";\ \ ELSE\ $ "Wells Constraints.HKWeight_14" [] := "OptValue"( $ "Wells Constraints.HKWeight_14", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_14 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_15" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_15", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_15";\ \ ELSE\ $ "Wells Constraints.HKWeight_15" [] := "OptValue"( $ "Wells Constraints.HKWeight_15", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_15 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_16" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_16", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_16";\ \ ELSE\ $ "Wells Constraints.HKWeight_16" [] := "OptValue"( $ "Wells Constraints.HKWeight_16", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_16 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_17" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_17", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_17";\ \ ELSE\ $ "Wells Constraints.HKWeight_17" [] := "OptValue"( $ "Wells Constraints.HKWeight_17", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_17 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_18" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_18", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_18";\ \ ELSE\ $ "Wells Constraints.HKWeight_18" [] := "OptValue"( $ "Wells Constraints.HKWeight_18", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_18 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_19" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_19", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_19";\ \ ELSE\ $ "Wells Constraints.HKWeight_19" [] := "OptValue"( $ "Wells Constraints.HKWeight_19", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_19 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_20" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_20", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_20";\ \ ELSE\ $ "Wells Constraints.HKWeight_20" [] := "OptValue"( $ "Wells Constraints.HKWeight_20", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_20 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_21" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_21", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_21";\ \ ELSE\ $ "Wells Constraints.HKWeight_21" [] := "OptValue"( $ "Wells Constraints.HKWeight_21", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_21 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_22" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_22", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_22";\ \ ELSE\ $ "Wells Constraints.HKWeight_22" [] := "OptValue"( $ "Wells Constraints.HKWeight_22", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_22 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_23" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_23", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_23";\ \ ELSE\ $ "Wells Constraints.HKWeight_23" [] := "OptValue"( $ "Wells Constraints.HKWeight_23", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_23 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_24" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_24", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_24";\ \ ELSE\ $ "Wells Constraints.HKWeight_24" [] := "OptValue"( $ "Wells Constraints.HKWeight_24", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_24 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_26";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_26" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_26", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_26";\ \ ELSE\ $ "Wells Constraints.HKWeight_26" [] := "OptValue"( $ "Wells Constraints.HKWeight_26", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_26 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_27";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_27" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_27", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_27";\ \ ELSE\ $ "Wells Constraints.HKWeight_27" [] := "OptValue"( $ "Wells Constraints.HKWeight_27", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_27 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_28";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_28" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_28", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_28";\ \ ELSE\ $ "Wells Constraints.HKWeight_28" [] := "OptValue"( $ "Wells Constraints.HKWeight_28", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_28 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_29";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_29" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_29", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_29";\ \ ELSE\ $ "Wells Constraints.HKWeight_29" [] := "OptValue"( $ "Wells Constraints.HKWeight_29", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_29 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_30";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_30" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_30", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_30";\ \ ELSE\ $ "Wells Constraints.HKWeight_30" [] := "OptValue"( $ "Wells Constraints.HKWeight_30", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_30 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_32";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_32" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_32", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_32";\ \ ELSE\ $ "Wells Constraints.HKWeight_32" [] := "OptValue"( $ "Wells Constraints.HKWeight_32", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_32 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_31";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_31" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_31", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_31";\ \ ELSE\ $ "Wells Constraints.HKWeight_31" [] := "OptValue"( $ "Wells Constraints.HKWeight_31", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_31 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_33";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_33" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_33", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_33";\ \ ELSE\ $ "Wells Constraints.HKWeight_33" [] := "OptValue"( $ "Wells Constraints.HKWeight_33", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_33 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_34";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_34" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_34", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_34";\ \ ELSE\ $ "Wells Constraints.HKWeight_34" [] := "OptValue"( $ "Wells Constraints.HKWeight_34", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_34 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_35";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_35" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_35", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_35";\ \ ELSE\ $ "Wells Constraints.HKWeight_35" [] := "OptValue"( $ "Wells Constraints.HKWeight_35", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_35 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_36";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_36" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_36", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_36";\ \ ELSE\ $ "Wells Constraints.HKWeight_36" [] := "OptValue"( $ "Wells Constraints.HKWeight_36", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_36 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_37";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_37" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_37", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_37";\ \ ELSE\ $ "Wells Constraints.HKWeight_37" [] := "OptValue"( $ "Wells Constraints.HKWeight_37", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_37 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_40";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_40" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_40", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_40";\ \ ELSE\ $ "Wells Constraints.HKWeight_40" [] := "OptValue"( $ "Wells Constraints.HKWeight_40", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_40 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_41";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_41" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_41", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_41";\ \ ELSE\ $ "Wells Constraints.HKWeight_41" [] := "OptValue"( $ "Wells Constraints.HKWeight_41", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_41 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_42";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_42" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_42", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_42";\ \ ELSE\ $ "Wells Constraints.HKWeight_42" [] := "OptValue"( $ "Wells Constraints.HKWeight_42", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_42 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_43";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_43" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_43", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_43";\ \ ELSE\ $ "Wells Constraints.HKWeight_43" [] := "OptValue"( $ "Wells Constraints.HKWeight_43", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_43 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_44";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_44" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_44", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_44";\ \ ELSE\ $ "Wells Constraints.HKWeight_44" [] := "OptValue"( $ "Wells Constraints.HKWeight_44", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_44 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_45";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_45" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_45", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_45";\ \ ELSE\ $ "Wells Constraints.HKWeight_45" [] := "OptValue"( $ "Wells Constraints.HKWeight_45", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_45 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_46";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_46" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_46", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_46";\ \ ELSE\ $ "Wells Constraints.HKWeight_46" [] := "OptValue"( $ "Wells Constraints.HKWeight_46", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_46 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_47";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_47" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_47", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_47";\ \ ELSE\ $ "Wells Constraints.HKWeight_47" [] := "OptValue"( $ "Wells Constraints.HKWeight_47", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_47 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_48";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_48" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_48", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_48";\ \ ELSE\ $ "Wells Constraints.HKWeight_48" [] := "OptValue"( $ "Wells Constraints.HKWeight_48", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_48 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_49";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_49" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_49", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_49";\ \ ELSE\ $ "Wells Constraints.HKWeight_49" [] := "OptValue"( $ "Wells Constraints.HKWeight_49", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_49 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_50";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_50" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_50", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_50";\ \ ELSE\ $ "Wells Constraints.HKWeight_50" [] := "OptValue"( $ "Wells Constraints.HKWeight_50", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_50 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_51";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_51" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_51", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_51";\ \ ELSE\ $ "Wells Constraints.HKWeight_51" [] := "OptValue"( $ "Wells Constraints.HKWeight_51", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_51 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_52";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_52" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_52", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_52";\ \ ELSE\ $ "Wells Constraints.HKWeight_52" [] := "OptValue"( $ "Wells Constraints.HKWeight_52", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_52 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_54";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_54" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_54", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_54";\ \ ELSE\ $ "Wells Constraints.HKWeight_54" [] := "OptValue"( $ "Wells Constraints.HKWeight_54", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_54 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_55";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_55" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_55", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_55";\ \ ELSE\ $ "Wells Constraints.HKWeight_55" [] := "OptValue"( $ "Wells Constraints.HKWeight_55", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_55 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_56";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_56" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_56", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_56";\ \ ELSE\ $ "Wells Constraints.HKWeight_56" [] := "OptValue"( $ "Wells Constraints.HKWeight_56", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_56 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_57";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_57" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_57", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_57";\ \ ELSE\ $ "Wells Constraints.HKWeight_57" [] := "OptValue"( $ "Wells Constraints.HKWeight_57", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_57 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_58";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_58" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_58", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_58";\ \ ELSE\ $ "Wells Constraints.HKWeight_58" [] := "OptValue"( $ "Wells Constraints.HKWeight_58", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_58 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_59";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_59" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_59", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_59";\ \ ELSE\ $ "Wells Constraints.HKWeight_59" [] := "OptValue"( $ "Wells Constraints.HKWeight_59", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_59 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_60";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_60" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_60", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_60";\ \ ELSE\ $ "Wells Constraints.HKWeight_60" [] := "OptValue"( $ "Wells Constraints.HKWeight_60", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_60 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_61";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_61" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_61", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_61";\ \ ELSE\ $ "Wells Constraints.HKWeight_61" [] := "OptValue"( $ "Wells Constraints.HKWeight_61", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_61 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_62";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_62" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_62", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_62";\ \ ELSE\ $ "Wells Constraints.HKWeight_62" [] := "OptValue"( $ "Wells Constraints.HKWeight_62", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_62 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_63";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_63" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_63", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_63";\ \ ELSE\ $ "Wells Constraints.HKWeight_63" [] := "OptValue"( $ "Wells Constraints.HKWeight_63", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_63 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_64";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_64" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_64", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_64";\ \ ELSE\ $ "Wells Constraints.HKWeight_64" [] := "OptValue"( $ "Wells Constraints.HKWeight_64", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_64 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_65";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_65" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_65", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_65";\ \ ELSE\ $ "Wells Constraints.HKWeight_65" [] := "OptValue"( $ "Wells Constraints.HKWeight_65", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_65 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_66";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_66" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_66", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_66";\ \ ELSE\ $ "Wells Constraints.HKWeight_66" [] := "OptValue"( $ "Wells Constraints.HKWeight_66", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_66 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_67";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_67" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_67", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_67";\ \ ELSE\ $ "Wells Constraints.HKWeight_67" [] := "OptValue"( $ "Wells Constraints.HKWeight_67", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_67 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_68";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_68" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_68", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_68";\ \ ELSE\ $ "Wells Constraints.HKWeight_68" [] := "OptValue"( $ "Wells Constraints.HKWeight_68", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_68 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_69";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_69" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_69", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_69";\ \ ELSE\ $ "Wells Constraints.HKWeight_69" [] := "OptValue"( $ "Wells Constraints.HKWeight_69", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_69 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_70";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_70" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_70", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_70";\ \ ELSE\ $ "Wells Constraints.HKWeight_70" [] := "OptValue"( $ "Wells Constraints.HKWeight_70", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_70 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_71";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_71" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_71", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_71";\ \ ELSE\ $ "Wells Constraints.HKWeight_71" [] := "OptValue"( $ "Wells Constraints.HKWeight_71", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_71 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_72";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_72" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_72", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_72";\ \ ELSE\ $ "Wells Constraints.HKWeight_72" [] := "OptValue"( $ "Wells Constraints.HKWeight_72", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_72 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_73";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_73" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_73", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_73";\ \ ELSE\ $ "Wells Constraints.HKWeight_73" [] := "OptValue"( $ "Wells Constraints.HKWeight_73", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_73 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_74";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_74" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_74", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_74";\ \ ELSE\ $ "Wells Constraints.HKWeight_74" [] := "OptValue"( $ "Wells Constraints.HKWeight_74", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_74 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_75";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_75" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_75", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_75";\ \ ELSE\ $ "Wells Constraints.HKWeight_75" [] := "OptValue"( $ "Wells Constraints.HKWeight_75", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_75 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_76";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_76" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_76", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_76";\ \ ELSE\ $ "Wells Constraints.HKWeight_76" [] := "OptValue"( $ "Wells Constraints.HKWeight_76", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_76 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_77";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_77" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_77", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_77";\ \ ELSE\ $ "Wells Constraints.HKWeight_77" [] := "OptValue"( $ "Wells Constraints.HKWeight_77", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_77 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_78";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_78" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_78", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_78";\ \ ELSE\ $ "Wells Constraints.HKWeight_78" [] := "OptValue"( $ "Wells Constraints.HKWeight_78", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_78 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_79";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_79" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_79", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_79";\ \ ELSE\ $ "Wells Constraints.HKWeight_79" [] := "OptValue"( $ "Wells Constraints.HKWeight_79", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_79 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_80";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_80" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_80", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_80";\ \ ELSE\ $ "Wells Constraints.HKWeight_80" [] := "OptValue"( $ "Wells Constraints.HKWeight_80", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_80 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_81";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_81" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_81", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_81";\ \ ELSE\ $ "Wells Constraints.HKWeight_81" [] := "OptValue"( $ "Wells Constraints.HKWeight_81", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_81 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_82";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_82" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_82", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_82";\ \ ELSE\ $ "Wells Constraints.HKWeight_82" [] := "OptValue"( $ "Wells Constraints.HKWeight_82", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_82 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_83";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_83" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_83", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_83";\ \ ELSE\ $ "Wells Constraints.HKWeight_83" [] := "OptValue"( $ "Wells Constraints.HKWeight_83", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_83 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_84";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_84" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_84", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_84";\ \ ELSE\ $ "Wells Constraints.HKWeight_84" [] := "OptValue"( $ "Wells Constraints.HKWeight_84", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_84 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_85";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_85" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_85", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_85";\ \ ELSE\ $ "Wells Constraints.HKWeight_85" [] := "OptValue"( $ "Wells Constraints.HKWeight_85", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_85 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_86";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_86" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_86", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_86";\ \ ELSE\ $ "Wells Constraints.HKWeight_86" [] := "OptValue"( $ "Wells Constraints.HKWeight_86", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_86 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_87";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_87" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_87", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_87";\ \ ELSE\ $ "Wells Constraints.HKWeight_87" [] := "OptValue"( $ "Wells Constraints.HKWeight_87", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_87 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_88";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_88" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_88", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_88";\ \ ELSE\ $ "Wells Constraints.HKWeight_88" [] := "OptValue"( $ "Wells Constraints.HKWeight_88", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_88 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_89";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_89" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_89", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_89";\ \ ELSE\ $ "Wells Constraints.HKWeight_89" [] := "OptValue"( $ "Wells Constraints.HKWeight_89", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_89 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_90";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_90" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_90", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_90";\ \ ELSE\ $ "Wells Constraints.HKWeight_90" [] := "OptValue"( $ "Wells Constraints.HKWeight_90", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_90 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_91";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_91" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_91", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_91";\ \ ELSE\ $ "Wells Constraints.HKWeight_91" [] := "OptValue"( $ "Wells Constraints.HKWeight_91", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_91 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_95";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_95" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_95", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_95";\ \ ELSE\ $ "Wells Constraints.HKWeight_95" [] := "OptValue"( $ "Wells Constraints.HKWeight_95", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_95 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_92";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_92" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_92", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_92";\ \ ELSE\ $ "Wells Constraints.HKWeight_92" [] := "OptValue"( $ "Wells Constraints.HKWeight_92", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_92 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_93";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_93" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_93", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_93";\ \ ELSE\ $ "Wells Constraints.HKWeight_93" [] := "OptValue"( $ "Wells Constraints.HKWeight_93", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_93 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_94";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_94" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_94", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_94";\ \ ELSE\ $ "Wells Constraints.HKWeight_94" [] := "OptValue"( $ "Wells Constraints.HKWeight_94", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_94 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_96";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_96" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_96", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_96";\ \ ELSE\ $ "Wells Constraints.HKWeight_96" [] := "OptValue"( $ "Wells Constraints.HKWeight_96", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_96 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_97";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_97" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_97", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_97";\ \ ELSE\ $ "Wells Constraints.HKWeight_97" [] := "OptValue"( $ "Wells Constraints.HKWeight_97", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_97 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_98";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_98" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_98", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_98";\ \ ELSE\ $ "Wells Constraints.HKWeight_98" [] := "OptValue"( $ "Wells Constraints.HKWeight_98", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_98 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_99";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_99" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_99", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_99";\ \ ELSE\ $ "Wells Constraints.HKWeight_99" [] := "OptValue"( $ "Wells Constraints.HKWeight_99", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_99 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_100";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_100" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_100", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_100";\ \ ELSE\ $ "Wells Constraints.HKWeight_100" [] := "OptValue"( $ "Wells Constraints.HKWeight_100", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_100 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_101";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_101" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_101", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_101";\ \ ELSE\ $ "Wells Constraints.HKWeight_101" [] := "OptValue"( $ "Wells Constraints.HKWeight_101", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_101 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_102";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_102" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_102", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_102";\ \ ELSE\ $ "Wells Constraints.HKWeight_102" [] := "OptValue"( $ "Wells Constraints.HKWeight_102", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_102 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_103";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_103" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_103", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_103";\ \ ELSE\ $ "Wells Constraints.HKWeight_103" [] := "OptValue"( $ "Wells Constraints.HKWeight_103", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_103 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_104";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_104" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_104", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_104";\ \ ELSE\ $ "Wells Constraints.HKWeight_104" [] := "OptValue"( $ "Wells Constraints.HKWeight_104", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_104 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_105";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_105" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_105", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_105";\ \ ELSE\ $ "Wells Constraints.HKWeight_105" [] := "OptValue"( $ "Wells Constraints.HKWeight_105", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_105 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_106";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_106" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_106", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_106";\ \ ELSE\ $ "Wells Constraints.HKWeight_106" [] := "OptValue"( $ "Wells Constraints.HKWeight_106", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_106 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_107";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_107" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_107", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_107";\ \ ELSE\ $ "Wells Constraints.HKWeight_107" [] := "OptValue"( $ "Wells Constraints.HKWeight_107", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_107 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_108";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_108" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_108", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_108";\ \ ELSE\ $ "Wells Constraints.HKWeight_108" [] := "OptValue"( $ "Wells Constraints.HKWeight_108", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_108 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_109";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_109" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_109", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_109";\ \ ELSE\ $ "Wells Constraints.HKWeight_109" [] := "OptValue"( $ "Wells Constraints.HKWeight_109", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_109 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_110";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_110" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_110", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_110";\ \ ELSE\ $ "Wells Constraints.HKWeight_110" [] := "OptValue"( $ "Wells Constraints.HKWeight_110", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_110 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_111";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_111" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_111", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_111";\ \ ELSE\ $ "Wells Constraints.HKWeight_111" [] := "OptValue"( $ "Wells Constraints.HKWeight_111", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_111 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_112";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_112" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_112", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_112";\ \ ELSE\ $ "Wells Constraints.HKWeight_112" [] := "OptValue"( $ "Wells Constraints.HKWeight_112", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_112 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_113";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_113" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_113", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_113";\ \ ELSE\ $ "Wells Constraints.HKWeight_113" [] := "OptValue"( $ "Wells Constraints.HKWeight_113", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_113 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_114";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_114" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_114", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_114";\ \ ELSE\ $ "Wells Constraints.HKWeight_114" [] := "OptValue"( $ "Wells Constraints.HKWeight_114", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_114 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_115";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_115" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_115", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_115";\ \ ELSE\ $ "Wells Constraints.HKWeight_115" [] := "OptValue"( $ "Wells Constraints.HKWeight_115", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_115 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_116";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_116" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_116", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_116";\ \ ELSE\ $ "Wells Constraints.HKWeight_116" [] := "OptValue"( $ "Wells Constraints.HKWeight_116", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_116 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_117";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_117" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_117", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_117";\ \ ELSE\ $ "Wells Constraints.HKWeight_117" [] := "OptValue"( $ "Wells Constraints.HKWeight_117", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_117 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_118";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_118" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_118", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_118";\ \ ELSE\ $ "Wells Constraints.HKWeight_118" [] := "OptValue"( $ "Wells Constraints.HKWeight_118", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_118 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_119";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_119" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_119", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_119";\ \ ELSE\ $ "Wells Constraints.HKWeight_119" [] := "OptValue"( $ "Wells Constraints.HKWeight_119", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_119 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_208";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_208" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_208", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_208";\ \ ELSE\ $ "Wells Constraints.HKWeight_208" [] := "OptValue"( $ "Wells Constraints.HKWeight_208", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_208 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_209";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_209" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_209", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_209";\ \ ELSE\ $ "Wells Constraints.HKWeight_209" [] := "OptValue"( $ "Wells Constraints.HKWeight_209", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_209 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_210";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_210" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_210", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_210";\ \ ELSE\ $ "Wells Constraints.HKWeight_210" [] := "OptValue"( $ "Wells Constraints.HKWeight_210", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_210 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_211";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_211" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_211", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_211";\ \ ELSE\ $ "Wells Constraints.HKWeight_211" [] := "OptValue"( $ "Wells Constraints.HKWeight_211", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_211 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_212";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_212" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_212", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_212";\ \ ELSE\ $ "Wells Constraints.HKWeight_212" [] := "OptValue"( $ "Wells Constraints.HKWeight_212", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_212 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_213";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_213" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_213", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_213";\ \ ELSE\ $ "Wells Constraints.HKWeight_213" [] := "OptValue"( $ "Wells Constraints.HKWeight_213", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_213 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_214";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_214" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_214", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_214";\ \ ELSE\ $ "Wells Constraints.HKWeight_214" [] := "OptValue"( $ "Wells Constraints.HKWeight_214", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_214 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_215";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_215" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_215", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_215";\ \ ELSE\ $ "Wells Constraints.HKWeight_215" [] := "OptValue"( $ "Wells Constraints.HKWeight_215", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_215 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_216";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_216" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_216", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_216";\ \ ELSE\ $ "Wells Constraints.HKWeight_216" [] := "OptValue"( $ "Wells Constraints.HKWeight_216", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_216 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_217";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_217" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_217", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_217";\ \ ELSE\ $ "Wells Constraints.HKWeight_217" [] := "OptValue"( $ "Wells Constraints.HKWeight_217", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_217 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_218";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_218" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_218", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_218";\ \ ELSE\ $ "Wells Constraints.HKWeight_218" [] := "OptValue"( $ "Wells Constraints.HKWeight_218", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_218 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_219";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_219" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_219", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_219";\ \ ELSE\ $ "Wells Constraints.HKWeight_219" [] := "OptValue"( $ "Wells Constraints.HKWeight_219", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_219 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_220";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_220" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_220", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_220";\ \ ELSE\ $ "Wells Constraints.HKWeight_220" [] := "OptValue"( $ "Wells Constraints.HKWeight_220", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_220 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_221";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_221" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_221", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_221";\ \ ELSE\ $ "Wells Constraints.HKWeight_221" [] := "OptValue"( $ "Wells Constraints.HKWeight_221", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_221 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_222";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_222" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_222", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_222";\ \ ELSE\ $ "Wells Constraints.HKWeight_222" [] := "OptValue"( $ "Wells Constraints.HKWeight_222", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_222 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_223";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_223" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_223", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_223";\ \ ELSE\ $ "Wells Constraints.HKWeight_223" [] := "OptValue"( $ "Wells Constraints.HKWeight_223", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_223 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_224";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_224" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_224", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_224";\ \ ELSE\ $ "Wells Constraints.HKWeight_224" [] := "OptValue"( $ "Wells Constraints.HKWeight_224", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_224 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_225";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_225" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_225", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_225";\ \ ELSE\ $ "Wells Constraints.HKWeight_225" [] := "OptValue"( $ "Wells Constraints.HKWeight_225", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_225 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_38";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_38" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_38", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_38";\ \ ELSE\ $ "Wells Constraints.HKWeight_38" [] := "OptValue"( $ "Wells Constraints.HKWeight_38", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_38 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_39";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_39" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_39", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_39";\ \ ELSE\ $ "Wells Constraints.HKWeight_39" [] := "OptValue"( $ "Wells Constraints.HKWeight_39", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_39 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_53";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_53" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_53", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_53";\ \ ELSE\ $ "Wells Constraints.HKWeight_53" [] := "OptValue"( $ "Wells Constraints.HKWeight_53", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_53 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_120";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_120" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_120", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_120";\ \ ELSE\ $ "Wells Constraints.HKWeight_120" [] := "OptValue"( $ "Wells Constraints.HKWeight_120", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_120 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_121";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_121" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_121", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_121";\ \ ELSE\ $ "Wells Constraints.HKWeight_121" [] := "OptValue"( $ "Wells Constraints.HKWeight_121", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_121 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_122";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_122" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_122", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_122";\ \ ELSE\ $ "Wells Constraints.HKWeight_122" [] := "OptValue"( $ "Wells Constraints.HKWeight_122", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_122 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_123";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_123" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_123", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_123";\ \ ELSE\ $ "Wells Constraints.HKWeight_123" [] := "OptValue"( $ "Wells Constraints.HKWeight_123", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_123 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_124";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_124" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_124", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_124";\ \ ELSE\ $ "Wells Constraints.HKWeight_124" [] := "OptValue"( $ "Wells Constraints.HKWeight_124", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_124 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_125";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_125" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_125", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_125";\ \ ELSE\ $ "Wells Constraints.HKWeight_125" [] := "OptValue"( $ "Wells Constraints.HKWeight_125", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_125 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_126";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_126" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_126", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_126";\ \ ELSE\ $ "Wells Constraints.HKWeight_126" [] := "OptValue"( $ "Wells Constraints.HKWeight_126", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_126 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_127";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_127" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_127", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_127";\ \ ELSE\ $ "Wells Constraints.HKWeight_127" [] := "OptValue"( $ "Wells Constraints.HKWeight_127", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_127 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_128";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_128" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_128", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_128";\ \ ELSE\ $ "Wells Constraints.HKWeight_128" [] := "OptValue"( $ "Wells Constraints.HKWeight_128", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_128 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_129";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_129" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_129", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_129";\ \ ELSE\ $ "Wells Constraints.HKWeight_129" [] := "OptValue"( $ "Wells Constraints.HKWeight_129", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_129 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_130";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_130" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_130", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_130";\ \ ELSE\ $ "Wells Constraints.HKWeight_130" [] := "OptValue"( $ "Wells Constraints.HKWeight_130", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_130 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_131";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_131" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_131", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_131";\ \ ELSE\ $ "Wells Constraints.HKWeight_131" [] := "OptValue"( $ "Wells Constraints.HKWeight_131", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_131 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_132";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_132" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_132", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_132";\ \ ELSE\ $ "Wells Constraints.HKWeight_132" [] := "OptValue"( $ "Wells Constraints.HKWeight_132", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_132 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_133";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_133" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_133", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_133";\ \ ELSE\ $ "Wells Constraints.HKWeight_133" [] := "OptValue"( $ "Wells Constraints.HKWeight_133", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_133 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_134";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_134" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_134", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_134";\ \ ELSE\ $ "Wells Constraints.HKWeight_134" [] := "OptValue"( $ "Wells Constraints.HKWeight_134", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_134 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_135";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_135" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_135", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_135";\ \ ELSE\ $ "Wells Constraints.HKWeight_135" [] := "OptValue"( $ "Wells Constraints.HKWeight_135", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_135 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_136";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_136" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_136", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_136";\ \ ELSE\ $ "Wells Constraints.HKWeight_136" [] := "OptValue"( $ "Wells Constraints.HKWeight_136", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_136 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_137";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_137" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_137", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_137";\ \ ELSE\ $ "Wells Constraints.HKWeight_137" [] := "OptValue"( $ "Wells Constraints.HKWeight_137", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_137 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_138";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_138" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_138", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_138";\ \ ELSE\ $ "Wells Constraints.HKWeight_138" [] := "OptValue"( $ "Wells Constraints.HKWeight_138", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_138 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_139";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_139" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_139", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_139";\ \ ELSE\ $ "Wells Constraints.HKWeight_139" [] := "OptValue"( $ "Wells Constraints.HKWeight_139", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_139 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_140";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_140" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_140", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_140";\ \ ELSE\ $ "Wells Constraints.HKWeight_140" [] := "OptValue"( $ "Wells Constraints.HKWeight_140", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_140 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_141";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_141" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_141", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_141";\ \ ELSE\ $ "Wells Constraints.HKWeight_141" [] := "OptValue"( $ "Wells Constraints.HKWeight_141", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_141 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_142";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_142" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_142", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_142";\ \ ELSE\ $ "Wells Constraints.HKWeight_142" [] := "OptValue"( $ "Wells Constraints.HKWeight_142", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_142 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_143";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_143" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_143", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_143";\ \ ELSE\ $ "Wells Constraints.HKWeight_143" [] := "OptValue"( $ "Wells Constraints.HKWeight_143", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_143 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_144";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_144" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_144", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_144";\ \ ELSE\ $ "Wells Constraints.HKWeight_144" [] := "OptValue"( $ "Wells Constraints.HKWeight_144", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_144 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_145";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_145" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_145", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_145";\ \ ELSE\ $ "Wells Constraints.HKWeight_145" [] := "OptValue"( $ "Wells Constraints.HKWeight_145", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_145 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_146";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_146" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_146", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_146";\ \ ELSE\ $ "Wells Constraints.HKWeight_146" [] := "OptValue"( $ "Wells Constraints.HKWeight_146", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_146 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_147";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_147" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_147", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_147";\ \ ELSE\ $ "Wells Constraints.HKWeight_147" [] := "OptValue"( $ "Wells Constraints.HKWeight_147", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_147 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_148";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_148" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_148", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_148";\ \ ELSE\ $ "Wells Constraints.HKWeight_148" [] := "OptValue"( $ "Wells Constraints.HKWeight_148", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_148 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_149";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_149" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_149", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_149";\ \ ELSE\ $ "Wells Constraints.HKWeight_149" [] := "OptValue"( $ "Wells Constraints.HKWeight_149", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_149 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_150";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_150" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_150", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_150";\ \ ELSE\ $ "Wells Constraints.HKWeight_150" [] := "OptValue"( $ "Wells Constraints.HKWeight_150", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_150 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_151";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_151" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_151", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_151";\ \ ELSE\ $ "Wells Constraints.HKWeight_151" [] := "OptValue"( $ "Wells Constraints.HKWeight_151", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_151 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_152";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_152" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_152", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_152";\ \ ELSE\ $ "Wells Constraints.HKWeight_152" [] := "OptValue"( $ "Wells Constraints.HKWeight_152", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_152 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_153";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_153" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_153", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_153";\ \ ELSE\ $ "Wells Constraints.HKWeight_153" [] := "OptValue"( $ "Wells Constraints.HKWeight_153", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_153 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_154";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_154" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_154", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_154";\ \ ELSE\ $ "Wells Constraints.HKWeight_154" [] := "OptValue"( $ "Wells Constraints.HKWeight_154", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_154 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_155";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_155" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_155", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_155";\ \ ELSE\ $ "Wells Constraints.HKWeight_155" [] := "OptValue"( $ "Wells Constraints.HKWeight_155", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_155 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_156";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_156" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_156", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_156";\ \ ELSE\ $ "Wells Constraints.HKWeight_156" [] := "OptValue"( $ "Wells Constraints.HKWeight_156", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_156 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_157";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_157" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_157", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_157";\ \ ELSE\ $ "Wells Constraints.HKWeight_157" [] := "OptValue"( $ "Wells Constraints.HKWeight_157", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_157 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_158";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_158" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_158", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_158";\ \ ELSE\ $ "Wells Constraints.HKWeight_158" [] := "OptValue"( $ "Wells Constraints.HKWeight_158", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_158 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_159";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_159" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_159", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_159";\ \ ELSE\ $ "Wells Constraints.HKWeight_159" [] := "OptValue"( $ "Wells Constraints.HKWeight_159", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_159 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_160";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_160" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_160", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_160";\ \ ELSE\ $ "Wells Constraints.HKWeight_160" [] := "OptValue"( $ "Wells Constraints.HKWeight_160", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_160 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_161";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_161" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_161", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_161";\ \ ELSE\ $ "Wells Constraints.HKWeight_161" [] := "OptValue"( $ "Wells Constraints.HKWeight_161", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_161 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_162";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_162" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_162", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_162";\ \ ELSE\ $ "Wells Constraints.HKWeight_162" [] := "OptValue"( $ "Wells Constraints.HKWeight_162", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_162 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_163";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_163" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_163", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_163";\ \ ELSE\ $ "Wells Constraints.HKWeight_163" [] := "OptValue"( $ "Wells Constraints.HKWeight_163", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_163 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_164";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_164" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_164", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_164";\ \ ELSE\ $ "Wells Constraints.HKWeight_164" [] := "OptValue"( $ "Wells Constraints.HKWeight_164", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_164 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_165";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_165" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_165", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_165";\ \ ELSE\ $ "Wells Constraints.HKWeight_165" [] := "OptValue"( $ "Wells Constraints.HKWeight_165", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_165 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_166";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_166" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_166", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_166";\ \ ELSE\ $ "Wells Constraints.HKWeight_166" [] := "OptValue"( $ "Wells Constraints.HKWeight_166", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_166 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_167";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_167" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_167", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_167";\ \ ELSE\ $ "Wells Constraints.HKWeight_167" [] := "OptValue"( $ "Wells Constraints.HKWeight_167", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_167 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_168";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_168" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_168", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_168";\ \ ELSE\ $ "Wells Constraints.HKWeight_168" [] := "OptValue"( $ "Wells Constraints.HKWeight_168", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_168 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_169";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_169" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_169", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_169";\ \ ELSE\ $ "Wells Constraints.HKWeight_169" [] := "OptValue"( $ "Wells Constraints.HKWeight_169", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_169 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_170";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_170" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_170", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_170";\ \ ELSE\ $ "Wells Constraints.HKWeight_170" [] := "OptValue"( $ "Wells Constraints.HKWeight_170", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_170 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_171";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_171" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_171", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_171";\ \ ELSE\ $ "Wells Constraints.HKWeight_171" [] := "OptValue"( $ "Wells Constraints.HKWeight_171", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_171 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_172";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_172" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_172", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_172";\ \ ELSE\ $ "Wells Constraints.HKWeight_172" [] := "OptValue"( $ "Wells Constraints.HKWeight_172", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_172 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_173";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_173" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_173", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_173";\ \ ELSE\ $ "Wells Constraints.HKWeight_173" [] := "OptValue"( $ "Wells Constraints.HKWeight_173", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_173 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_174";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_174" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_174", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_174";\ \ ELSE\ $ "Wells Constraints.HKWeight_174" [] := "OptValue"( $ "Wells Constraints.HKWeight_174", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_174 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_175";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_175" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_175", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_175";\ \ ELSE\ $ "Wells Constraints.HKWeight_175" [] := "OptValue"( $ "Wells Constraints.HKWeight_175", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_175 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_176";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_176" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_176", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_176";\ \ ELSE\ $ "Wells Constraints.HKWeight_176" [] := "OptValue"( $ "Wells Constraints.HKWeight_176", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_176 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_177";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_177" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_177", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_177";\ \ ELSE\ $ "Wells Constraints.HKWeight_177" [] := "OptValue"( $ "Wells Constraints.HKWeight_177", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_177 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_178";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_178" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_178", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_178";\ \ ELSE\ $ "Wells Constraints.HKWeight_178" [] := "OptValue"( $ "Wells Constraints.HKWeight_178", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_178 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_179";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_179" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_179", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_179";\ \ ELSE\ $ "Wells Constraints.HKWeight_179" [] := "OptValue"( $ "Wells Constraints.HKWeight_179", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_179 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_180";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_180" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_180", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_180";\ \ ELSE\ $ "Wells Constraints.HKWeight_180" [] := "OptValue"( $ "Wells Constraints.HKWeight_180", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_180 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_181";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_181" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_181", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_181";\ \ ELSE\ $ "Wells Constraints.HKWeight_181" [] := "OptValue"( $ "Wells Constraints.HKWeight_181", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_181 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_182";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_182" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_182", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_182";\ \ ELSE\ $ "Wells Constraints.HKWeight_182" [] := "OptValue"( $ "Wells Constraints.HKWeight_182", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_182 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_183";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_183" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_183", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_183";\ \ ELSE\ $ "Wells Constraints.HKWeight_183" [] := "OptValue"( $ "Wells Constraints.HKWeight_183", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_183 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_184";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_184" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_184", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_184";\ \ ELSE\ $ "Wells Constraints.HKWeight_184" [] := "OptValue"( $ "Wells Constraints.HKWeight_184", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_184 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_185";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_185" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_185", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_185";\ \ ELSE\ $ "Wells Constraints.HKWeight_185" [] := "OptValue"( $ "Wells Constraints.HKWeight_185", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_185 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_186";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_186" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_186", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_186";\ \ ELSE\ $ "Wells Constraints.HKWeight_186" [] := "OptValue"( $ "Wells Constraints.HKWeight_186", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_186 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_187";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_187" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_187", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_187";\ \ ELSE\ $ "Wells Constraints.HKWeight_187" [] := "OptValue"( $ "Wells Constraints.HKWeight_187", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_187 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_188";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_188" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_188", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_188";\ \ ELSE\ $ "Wells Constraints.HKWeight_188" [] := "OptValue"( $ "Wells Constraints.HKWeight_188", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_188 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_189";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_189" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_189", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_189";\ \ ELSE\ $ "Wells Constraints.HKWeight_189" [] := "OptValue"( $ "Wells Constraints.HKWeight_189", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_189 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_190";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_190" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_190", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_190";\ \ ELSE\ $ "Wells Constraints.HKWeight_190" [] := "OptValue"( $ "Wells Constraints.HKWeight_190", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_190 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_191";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_191" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_191", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_191";\ \ ELSE\ $ "Wells Constraints.HKWeight_191" [] := "OptValue"( $ "Wells Constraints.HKWeight_191", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_191 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_192";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_192" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_192", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_192";\ \ ELSE\ $ "Wells Constraints.HKWeight_192" [] := "OptValue"( $ "Wells Constraints.HKWeight_192", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_192 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_193";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_193" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_193", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_193";\ \ ELSE\ $ "Wells Constraints.HKWeight_193" [] := "OptValue"( $ "Wells Constraints.HKWeight_193", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_193 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_194";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_194" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_194", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_194";\ \ ELSE\ $ "Wells Constraints.HKWeight_194" [] := "OptValue"( $ "Wells Constraints.HKWeight_194", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_194 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_195";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_195" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_195", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_195";\ \ ELSE\ $ "Wells Constraints.HKWeight_195" [] := "OptValue"( $ "Wells Constraints.HKWeight_195", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_195 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_196";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_196" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_196", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_196";\ \ ELSE\ $ "Wells Constraints.HKWeight_196" [] := "OptValue"( $ "Wells Constraints.HKWeight_196", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_196 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_197";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_197" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_197", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_197";\ \ ELSE\ $ "Wells Constraints.HKWeight_197" [] := "OptValue"( $ "Wells Constraints.HKWeight_197", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_197 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_198";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_198" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_198", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_198";\ \ ELSE\ $ "Wells Constraints.HKWeight_198" [] := "OptValue"( $ "Wells Constraints.HKWeight_198", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_198 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_199";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_199" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_199", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_199";\ \ ELSE\ $ "Wells Constraints.HKWeight_199" [] := "OptValue"( $ "Wells Constraints.HKWeight_199", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_199 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_200";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_200" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_200", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_200";\ \ ELSE\ $ "Wells Constraints.HKWeight_200" [] := "OptValue"( $ "Wells Constraints.HKWeight_200", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_200 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_201";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_201" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_201", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_201";\ \ ELSE\ $ "Wells Constraints.HKWeight_201" [] := "OptValue"( $ "Wells Constraints.HKWeight_201", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_201 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_202";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_202" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_202", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_202";\ \ ELSE\ $ "Wells Constraints.HKWeight_202" [] := "OptValue"( $ "Wells Constraints.HKWeight_202", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_202 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_203";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_203" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_203", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_203";\ \ ELSE\ $ "Wells Constraints.HKWeight_203" [] := "OptValue"( $ "Wells Constraints.HKWeight_203", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_203 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_204";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_204" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_204", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_204";\ \ ELSE\ $ "Wells Constraints.HKWeight_204" [] := "OptValue"( $ "Wells Constraints.HKWeight_204", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_204 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_205";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_205" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_205", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_205";\ \ ELSE\ $ "Wells Constraints.HKWeight_205" [] := "OptValue"( $ "Wells Constraints.HKWeight_205", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_205 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_206";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_206" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_206", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_206";\ \ ELSE\ $ "Wells Constraints.HKWeight_206" [] := "OptValue"( $ "Wells Constraints.HKWeight_206", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_206 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints HKWeight_207";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.HKWeight_207" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.HKWeight_207", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints HKWeight_207";\ \ ELSE\ $ "Wells Constraints.HKWeight_207" [] := "OptValue"( $ "Wells Constraints.HKWeight_207", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a HKWeight_207 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Rock Island Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Rock Island Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Rock Island Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Rock Island Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Shifted Operating Head";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Shifted Operating Head" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Shifted Operating Head", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Shifted Operating Head";\ \ ELSE\ $ "Rock Island Constraints.Shifted Operating Head" [] := "OptValue"( $ "Rock Island Constraints.Shifted Operating Head", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Shifted Operating Head value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Shifted Turbine Release";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Shifted Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Shifted Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Shifted Turbine Release";\ \ ELSE\ $ "Rock Island Constraints.Shifted Turbine Release" [] := "OptValue"( $ "Rock Island Constraints.Shifted Turbine Release", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Shifted Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Efficiency";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Efficiency" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Efficiency", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Efficiency";\ \ ELSE\ $ "Rock Island Constraints.Efficiency" [] := "OptValue"( $ "Rock Island Constraints.Efficiency", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Efficiency value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HK";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HK" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HK", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HK";\ \ ELSE\ $ "Rock Island Constraints.HK" [] := "OptValue"( $ "Rock Island Constraints.HK", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HK value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_0" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_0", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_0";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_0" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_0", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_0 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_1" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_1", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_1";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_1" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_1", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_1 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_10" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_10", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_10";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_10" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_10", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_10 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_11" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_11", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_11";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_11" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_11", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_11 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_12" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_12", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_12";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_12" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_12", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_12 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_13" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_13", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_13";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_13" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_13", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_13 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_14" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_14", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_14";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_14" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_14", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_14 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_15" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_15", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_15";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_15" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_15", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_15 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_16" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_16", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_16";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_16" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_16", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_16 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_17" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_17", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_17";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_17" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_17", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_17 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_18" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_18", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_18";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_18" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_18", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_18 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_19" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_19", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_19";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_19" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_19", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_19 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_2" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_2", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_2";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_2" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_2", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_2 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_20" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_20", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_20";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_20" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_20", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_20 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_21" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_21", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_21";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_21" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_21", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_21 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_22" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_22", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_22";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_22" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_22", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_22 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_23" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_23", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_23";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_23" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_23", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_23 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_24" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_24", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_24";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_24" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_24", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_24 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_25" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_25", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_25";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_25" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_25", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_25 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_3" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_3", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_3";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_3" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_3", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_3 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_4" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_4", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_4";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_4" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_4", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_4 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_5" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_5", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_5";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_5" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_5", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_5 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_6" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_6", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_6";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_6" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_6", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_6 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_7" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_7", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_7";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_7" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_7", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_7 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_8" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_8", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_8";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_8" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_8", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_8 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_9" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_9", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_9";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_9" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_9", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_9 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_26";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_26" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_26", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_26";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_26" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_26", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_26 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_27";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_27" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_27", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_27";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_27" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_27", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_27 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_28";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_28" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_28", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_28";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_28" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_28", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_28 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_29";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_29" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_29", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_29";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_29" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_29", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_29 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_30";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_30" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_30", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_30";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_30" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_30", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_30 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_31";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_31" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_31", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_31";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_31" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_31", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_31 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_32";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_32" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_32", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_32";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_32" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_32", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_32 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_33";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_33" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_33", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_33";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_33" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_33", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_33 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_34";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_34" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_34", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_34";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_34" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_34", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_34 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_35";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_35" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_35", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_35";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_35" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_35", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_35 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_36";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_36" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_36", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_36";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_36" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_36", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_36 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_37";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_37" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_37", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_37";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_37" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_37", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_37 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_40";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_40" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_40", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_40";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_40" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_40", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_40 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_41";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_41" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_41", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_41";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_41" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_41", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_41 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_42";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_42" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_42", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_42";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_42" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_42", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_42 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_43";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_43" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_43", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_43";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_43" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_43", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_43 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_44";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_44" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_44", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_44";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_44" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_44", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_44 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_45";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_45" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_45", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_45";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_45" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_45", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_45 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_46";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_46" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_46", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_46";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_46" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_46", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_46 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_47";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_47" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_47", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_47";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_47" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_47", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_47 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_48";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_48" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_48", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_48";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_48" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_48", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_48 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_49";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_49" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_49", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_49";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_49" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_49", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_49 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_50";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_50" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_50", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_50";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_50" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_50", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_50 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_51";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_51" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_51", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_51";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_51" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_51", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_51 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_52";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_52" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_52", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_52";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_52" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_52", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_52 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_54";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_54" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_54", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_54";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_54" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_54", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_54 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_55";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_55" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_55", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_55";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_55" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_55", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_55 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_56";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_56" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_56", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_56";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_56" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_56", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_56 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_57";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_57" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_57", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_57";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_57" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_57", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_57 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_58";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_58" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_58", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_58";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_58" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_58", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_58 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_59";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_59" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_59", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_59";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_59" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_59", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_59 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_60";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_60" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_60", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_60";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_60" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_60", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_60 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_61";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_61" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_61", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_61";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_61" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_61", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_61 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_62";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_62" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_62", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_62";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_62" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_62", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_62 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_63";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_63" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_63", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_63";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_63" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_63", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_63 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_64";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_64" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_64", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_64";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_64" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_64", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_64 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_65";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_65" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_65", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_65";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_65" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_65", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_65 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_66";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_66" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_66", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_66";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_66" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_66", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_66 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_67";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_67" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_67", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_67";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_67" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_67", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_67 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_68";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_68" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_68", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_68";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_68" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_68", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_68 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_69";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_69" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_69", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_69";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_69" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_69", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_69 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_70";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_70" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_70", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_70";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_70" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_70", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_70 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_71";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_71" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_71", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_71";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_71" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_71", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_71 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_72";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_72" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_72", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_72";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_72" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_72", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_72 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_73";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_73" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_73", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_73";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_73" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_73", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_73 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_74";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_74" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_74", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_74";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_74" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_74", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_74 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_75";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_75" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_75", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_75";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_75" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_75", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_75 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_100";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_100" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_100", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_100";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_100" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_100", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_100 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_76";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_76" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_76", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_76";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_76" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_76", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_76 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_77";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_77" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_77", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_77";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_77" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_77", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_77 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_78";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_78" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_78", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_78";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_78" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_78", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_78 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_79";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_79" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_79", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_79";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_79" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_79", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_79 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_80";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_80" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_80", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_80";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_80" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_80", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_80 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_81";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_81" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_81", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_81";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_81" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_81", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_81 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_82";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_82" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_82", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_82";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_82" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_82", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_82 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_83";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_83" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_83", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_83";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_83" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_83", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_83 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_84";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_84" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_84", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_84";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_84" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_84", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_84 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_85";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_85" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_85", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_85";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_85" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_85", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_85 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_86";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_86" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_86", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_86";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_86" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_86", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_86 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_87";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_87" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_87", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_87";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_87" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_87", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_87 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_88";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_88" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_88", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_88";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_88" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_88", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_88 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_89";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_89" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_89", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_89";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_89" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_89", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_89 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_90";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_90" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_90", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_90";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_90" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_90", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_90 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_91";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_91" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_91", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_91";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_91" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_91", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_91 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_92";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_92" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_92", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_92";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_92" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_92", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_92 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_93";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_93" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_93", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_93";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_93" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_93", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_93 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_94";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_94" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_94", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_94";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_94" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_94", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_94 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_95";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_95" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_95", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_95";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_95" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_95", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_95 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_96";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_96" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_96", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_96";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_96" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_96", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_96 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_97";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_97" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_97", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_97";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_97" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_97", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_97 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_98";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_98" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_98", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_98";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_98" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_98", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_98 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_99";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_99" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_99", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_99";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_99" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_99", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_99 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_101";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_101" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_101", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_101";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_101" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_101", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_101 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_102";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_102" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_102", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_102";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_102" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_102", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_102 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_103";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_103" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_103", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_103";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_103" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_103", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_103 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_104";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_104" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_104", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_104";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_104" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_104", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_104 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_105";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_105" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_105", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_105";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_105" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_105", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_105 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_106";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_106" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_106", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_106";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_106" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_106", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_106 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_107";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_107" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_107", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_107";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_107" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_107", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_107 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_108";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_108" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_108", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_108";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_108" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_108", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_108 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_109";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_109" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_109", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_109";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_109" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_109", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_109 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_110";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_110" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_110", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_110";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_110" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_110", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_110 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_111";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_111" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_111", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_111";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_111" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_111", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_111 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_112";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_112" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_112", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_112";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_112" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_112", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_112 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_113";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_113" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_113", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_113";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_113" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_113", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_113 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_114";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_114" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_114", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_114";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_114" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_114", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_114 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_115";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_115" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_115", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_115";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_115" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_115", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_115 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_116";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_116" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_116", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_116";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_116" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_116", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_116 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_117";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_117" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_117", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_117";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_117" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_117", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_117 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_118";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_118" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_118", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_118";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_118" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_118", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_118 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_119";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_119" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_119", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_119";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_119" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_119", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_119 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_120";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_120" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_120", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_120";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_120" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_120", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_120 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_121";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_121" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_121", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_121";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_121" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_121", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_121 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_122";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_122" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_122", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_122";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_122" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_122", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_122 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_123";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_123" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_123", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_123";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_123" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_123", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_123 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_124";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_124" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_124", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_124";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_124" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_124", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_124 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_125";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_125" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_125", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_125";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_125" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_125", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_125 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_126";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_126" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_126", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_126";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_126" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_126", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_126 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_127";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_127" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_127", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_127";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_127" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_127", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_127 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_128";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_128" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_128", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_128";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_128" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_128", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_128 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_129";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_129" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_129", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_129";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_129" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_129", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_129 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_130";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_130" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_130", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_130";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_130" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_130", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_130 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_131";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_131" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_131", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_131";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_131" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_131", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_131 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_132";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_132" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_132", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_132";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_132" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_132", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_132 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_133";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_133" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_133", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_133";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_133" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_133", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_133 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_134";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_134" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_134", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_134";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_134" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_134", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_134 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_135";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_135" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_135", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_135";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_135" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_135", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_135 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_136";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_136" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_136", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_136";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_136" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_136", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_136 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_137";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_137" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_137", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_137";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_137" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_137", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_137 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_138";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_138" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_138", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_138";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_138" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_138", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_138 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_139";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_139" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_139", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_139";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_139" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_139", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_139 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_140";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_140" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_140", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_140";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_140" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_140", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_140 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_141";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_141" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_141", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_141";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_141" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_141", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_141 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_142";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_142" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_142", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_142";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_142" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_142", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_142 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_143";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_143" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_143", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_143";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_143" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_143", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_143 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_144";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_144" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_144", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_144";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_144" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_144", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_144 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_145";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_145" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_145", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_145";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_145" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_145", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_145 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_146";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_146" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_146", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_146";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_146" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_146", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_146 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_147";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_147" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_147", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_147";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_147" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_147", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_147 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_148";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_148" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_148", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_148";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_148" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_148", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_148 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_149";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_149" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_149", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_149";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_149" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_149", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_149 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_150";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_150" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_150", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_150";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_150" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_150", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_150 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_151";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_151" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_151", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_151";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_151" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_151", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_151 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_152";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_152" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_152", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_152";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_152" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_152", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_152 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_153";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_153" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_153", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_153";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_153" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_153", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_153 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_154";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_154" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_154", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_154";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_154" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_154", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_154 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_155";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_155" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_155", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_155";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_155" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_155", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_155 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_156";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_156" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_156", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_156";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_156" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_156", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_156 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_157";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_157" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_157", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_157";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_157" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_157", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_157 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_158";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_158" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_158", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_158";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_158" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_158", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_158 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_159";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_159" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_159", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_159";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_159" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_159", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_159 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_160";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_160" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_160", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_160";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_160" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_160", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_160 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_161";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_161" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_161", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_161";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_161" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_161", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_161 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_162";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_162" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_162", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_162";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_162" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_162", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_162 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_163";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_163" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_163", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_163";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_163" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_163", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_163 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_164";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_164" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_164", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_164";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_164" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_164", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_164 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_165";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_165" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_165", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_165";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_165" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_165", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_165 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_166";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_166" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_166", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_166";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_166" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_166", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_166 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_167";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_167" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_167", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_167";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_167" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_167", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_167 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_168";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_168" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_168", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_168";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_168" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_168", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_168 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_169";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_169" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_169", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_169";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_169" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_169", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_169 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_170";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_170" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_170", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_170";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_170" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_170", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_170 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_171";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_171" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_171", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_171";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_171" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_171", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_171 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_172";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_172" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_172", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_172";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_172" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_172", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_172 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_173";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_173" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_173", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_173";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_173" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_173", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_173 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_174";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_174" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_174", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_174";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_174" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_174", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_174 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_175";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_175" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_175", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_175";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_175" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_175", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_175 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_176";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_176" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_176", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_176";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_176" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_176", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_176 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_177";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_177" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_177", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_177";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_177" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_177", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_177 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_178";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_178" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_178", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_178";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_178" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_178", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_178 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_179";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_179" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_179", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_179";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_179" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_179", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_179 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_180";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_180" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_180", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_180";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_180" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_180", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_180 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_181";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_181" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_181", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_181";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_181" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_181", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_181 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_182";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_182" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_182", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_182";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_182" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_182", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_182 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_183";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_183" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_183", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_183";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_183" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_183", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_183 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_184";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_184" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_184", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_184";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_184" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_184", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_184 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_185";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_185" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_185", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_185";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_185" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_185", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_185 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_186";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_186" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_186", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_186";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_186" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_186", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_186 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_187";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_187" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_187", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_187";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_187" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_187", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_187 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_188";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_188" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_188", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_188";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_188" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_188", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_188 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_189";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_189" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_189", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_189";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_189" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_189", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_189 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_190";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_190" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_190", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_190";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_190" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_190", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_190 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_191";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_191" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_191", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_191";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_191" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_191", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_191 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_192";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_192" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_192", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_192";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_192" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_192", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_192 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_193";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_193" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_193", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_193";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_193" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_193", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_193 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_194";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_194" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_194", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_194";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_194" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_194", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_194 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_195";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_195" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_195", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_195";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_195" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_195", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_195 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_196";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_196" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_196", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_196";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_196" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_196", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_196 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_197";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_197" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_197", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_197";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_197" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_197", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_197 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_198";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_198" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_198", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_198";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_198" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_198", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_198 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_199";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_199" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_199", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_199";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_199" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_199", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_199 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_200";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_200" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_200", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_200";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_200" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_200", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_200 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_201";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_201" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_201", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_201";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_201" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_201", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_201 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_202";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_202" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_202", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_202";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_202" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_202", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_202 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_203";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_203" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_203", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_203";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_203" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_203", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_203 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_204";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_204" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_204", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_204";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_204" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_204", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_204 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_205";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_205" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_205", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_205";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_205" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_205", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_205 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_206";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_206" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_206", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_206";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_206" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_206", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_206 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_207";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_207" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_207", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_207";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_207" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_207", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_207 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_208";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_208" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_208", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_208";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_208" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_208", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_208 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_209";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_209" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_209", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_209";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_209" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_209", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_209 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_210";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_210" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_210", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_210";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_210" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_210", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_210 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_211";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_211" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_211", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_211";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_211" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_211", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_211 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_212";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_212" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_212", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_212";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_212" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_212", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_212 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_213";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_213" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_213", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_213";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_213" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_213", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_213 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_214";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_214" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_214", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_214";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_214" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_214", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_214 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_215";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_215" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_215", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_215";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_215" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_215", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_215 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_216";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_216" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_216", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_216";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_216" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_216", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_216 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_217";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_217" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_217", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_217";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_217" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_217", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_217 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_218";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_218" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_218", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_218";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_218" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_218", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_218 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_219";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_219" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_219", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_219";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_219" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_219", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_219 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_220";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_220" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_220", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_220";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_220" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_220", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_220 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_221";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_221" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_221", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_221";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_221" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_221", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_221 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_222";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_222" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_222", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_222";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_222" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_222", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_222 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_223";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_223" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_223", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_223";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_223" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_223", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_223 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_224";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_224" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_224", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_224";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_224" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_224", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_224 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_225";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_225" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_225", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_225";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_225" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_225", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_225 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_38";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_38" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_38", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_38";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_38" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_38", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_38 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_39";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_39" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_39", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_39";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_39" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_39", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_39 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints HKWeight_53";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.HKWeight_53" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.HKWeight_53", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints HKWeight_53";\ \ ELSE\ $ "Rock Island Constraints.HKWeight_53" [] := "OptValue"( $ "Rock Island Constraints.HKWeight_53", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a HKWeight_53 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Wanapum Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Wanapum Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Wanapum Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Wanapum Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Shifted Operating Head";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Shifted Operating Head" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Shifted Operating Head", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Shifted Operating Head";\ \ ELSE\ $ "Wanapum Constraints.Shifted Operating Head" [] := "OptValue"( $ "Wanapum Constraints.Shifted Operating Head", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Shifted Operating Head value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Shifted Turbine Release";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Shifted Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Shifted Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Shifted Turbine Release";\ \ ELSE\ $ "Wanapum Constraints.Shifted Turbine Release" [] := "OptValue"( $ "Wanapum Constraints.Shifted Turbine Release", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Shifted Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Efficiency";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Efficiency" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Efficiency", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Efficiency";\ \ ELSE\ $ "Wanapum Constraints.Efficiency" [] := "OptValue"( $ "Wanapum Constraints.Efficiency", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Efficiency value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HK";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HK" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HK", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HK";\ \ ELSE\ $ "Wanapum Constraints.HK" [] := "OptValue"( $ "Wanapum Constraints.HK", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HK value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_0" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_0", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_0";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_0" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_0", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_0 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_1" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_1", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_1";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_1" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_1", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_1 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_10" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_10", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_10";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_10" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_10", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_10 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_11" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_11", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_11";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_11" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_11", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_11 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_12" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_12", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_12";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_12" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_12", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_12 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_13" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_13", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_13";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_13" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_13", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_13 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_14" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_14", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_14";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_14" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_14", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_14 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_15" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_15", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_15";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_15" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_15", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_15 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_16" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_16", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_16";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_16" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_16", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_16 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_17" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_17", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_17";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_17" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_17", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_17 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_18" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_18", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_18";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_18" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_18", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_18 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_19" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_19", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_19";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_19" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_19", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_19 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_2" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_2", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_2";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_2" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_2", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_2 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_20" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_20", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_20";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_20" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_20", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_20 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_21" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_21", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_21";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_21" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_21", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_21 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_22" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_22", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_22";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_22" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_22", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_22 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_23" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_23", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_23";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_23" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_23", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_23 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_24" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_24", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_24";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_24" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_24", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_24 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_25" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_25", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_25";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_25" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_25", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_25 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_3" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_3", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_3";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_3" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_3", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_3 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_4" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_4", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_4";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_4" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_4", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_4 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_5" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_5", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_5";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_5" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_5", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_5 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_6" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_6", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_6";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_6" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_6", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_6 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_7" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_7", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_7";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_7" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_7", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_7 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_8" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_8", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_8";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_8" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_8", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_8 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_9" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_9", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_9";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_9" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_9", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_9 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_26";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_26" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_26", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_26";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_26" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_26", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_26 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_27";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_27" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_27", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_27";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_27" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_27", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_27 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_28";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_28" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_28", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_28";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_28" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_28", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_28 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_29";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_29" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_29", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_29";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_29" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_29", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_29 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_30";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_30" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_30", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_30";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_30" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_30", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_30 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_31";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_31" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_31", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_31";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_31" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_31", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_31 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_32";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_32" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_32", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_32";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_32" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_32", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_32 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_33";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_33" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_33", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_33";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_33" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_33", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_33 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_34";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_34" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_34", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_34";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_34" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_34", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_34 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_35";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_35" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_35", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_35";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_35" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_35", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_35 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_36";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_36" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_36", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_36";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_36" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_36", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_36 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_37";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_37" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_37", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_37";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_37" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_37", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_37 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_40";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_40" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_40", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_40";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_40" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_40", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_40 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_41";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_41" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_41", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_41";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_41" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_41", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_41 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_42";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_42" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_42", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_42";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_42" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_42", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_42 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_43";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_43" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_43", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_43";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_43" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_43", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_43 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_44";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_44" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_44", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_44";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_44" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_44", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_44 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_45";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_45" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_45", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_45";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_45" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_45", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_45 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_46";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_46" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_46", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_46";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_46" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_46", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_46 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_47";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_47" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_47", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_47";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_47" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_47", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_47 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_48";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_48" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_48", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_48";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_48" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_48", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_48 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_49";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_49" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_49", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_49";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_49" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_49", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_49 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_50";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_50" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_50", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_50";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_50" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_50", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_50 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_51";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_51" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_51", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_51";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_51" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_51", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_51 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_52";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_52" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_52", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_52";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_52" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_52", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_52 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_54";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_54" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_54", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_54";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_54" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_54", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_54 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_55";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_55" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_55", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_55";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_55" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_55", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_55 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_56";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_56" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_56", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_56";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_56" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_56", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_56 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_57";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_57" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_57", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_57";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_57" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_57", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_57 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_58";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_58" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_58", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_58";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_58" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_58", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_58 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_59";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_59" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_59", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_59";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_59" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_59", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_59 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_60";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_60" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_60", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_60";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_60" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_60", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_60 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_61";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_61" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_61", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_61";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_61" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_61", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_61 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_62";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_62" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_62", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_62";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_62" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_62", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_62 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_63";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_63" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_63", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_63";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_63" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_63", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_63 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_64";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_64" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_64", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_64";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_64" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_64", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_64 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_65";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_65" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_65", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_65";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_65" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_65", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_65 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_66";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_66" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_66", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_66";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_66" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_66", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_66 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_67";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_67" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_67", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_67";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_67" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_67", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_67 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_68";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_68" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_68", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_68";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_68" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_68", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_68 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_69";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_69" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_69", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_69";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_69" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_69", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_69 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_70";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_70" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_70", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_70";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_70" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_70", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_70 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_71";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_71" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_71", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_71";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_71" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_71", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_71 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_72";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_72" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_72", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_72";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_72" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_72", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_72 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_73";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_73" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_73", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_73";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_73" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_73", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_73 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_74";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_74" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_74", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_74";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_74" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_74", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_74 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_75";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_75" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_75", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_75";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_75" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_75", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_75 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_100";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_100" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_100", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_100";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_100" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_100", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_100 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_76";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_76" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_76", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_76";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_76" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_76", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_76 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_77";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_77" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_77", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_77";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_77" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_77", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_77 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_78";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_78" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_78", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_78";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_78" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_78", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_78 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_79";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_79" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_79", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_79";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_79" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_79", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_79 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_80";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_80" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_80", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_80";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_80" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_80", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_80 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_81";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_81" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_81", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_81";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_81" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_81", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_81 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_82";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_82" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_82", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_82";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_82" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_82", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_82 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_83";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_83" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_83", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_83";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_83" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_83", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_83 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_84";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_84" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_84", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_84";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_84" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_84", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_84 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_85";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_85" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_85", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_85";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_85" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_85", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_85 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_86";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_86" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_86", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_86";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_86" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_86", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_86 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_87";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_87" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_87", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_87";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_87" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_87", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_87 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_88";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_88" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_88", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_88";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_88" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_88", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_88 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_89";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_89" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_89", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_89";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_89" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_89", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_89 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_90";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_90" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_90", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_90";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_90" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_90", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_90 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_91";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_91" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_91", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_91";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_91" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_91", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_91 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_92";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_92" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_92", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_92";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_92" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_92", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_92 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_93";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_93" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_93", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_93";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_93" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_93", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_93 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_94";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_94" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_94", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_94";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_94" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_94", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_94 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_95";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_95" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_95", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_95";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_95" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_95", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_95 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_96";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_96" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_96", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_96";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_96" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_96", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_96 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_97";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_97" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_97", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_97";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_97" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_97", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_97 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_98";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_98" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_98", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_98";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_98" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_98", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_98 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_99";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_99" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_99", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_99";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_99" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_99", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_99 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_101";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_101" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_101", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_101";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_101" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_101", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_101 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_102";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_102" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_102", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_102";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_102" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_102", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_102 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_103";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_103" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_103", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_103";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_103" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_103", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_103 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_104";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_104" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_104", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_104";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_104" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_104", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_104 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_105";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_105" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_105", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_105";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_105" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_105", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_105 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_106";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_106" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_106", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_106";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_106" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_106", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_106 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_107";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_107" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_107", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_107";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_107" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_107", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_107 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_108";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_108" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_108", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_108";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_108" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_108", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_108 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_109";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_109" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_109", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_109";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_109" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_109", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_109 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_110";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_110" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_110", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_110";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_110" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_110", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_110 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_111";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_111" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_111", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_111";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_111" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_111", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_111 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_112";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_112" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_112", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_112";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_112" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_112", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_112 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_113";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_113" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_113", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_113";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_113" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_113", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_113 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_114";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_114" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_114", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_114";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_114" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_114", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_114 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_115";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_115" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_115", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_115";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_115" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_115", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_115 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_116";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_116" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_116", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_116";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_116" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_116", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_116 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_117";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_117" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_117", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_117";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_117" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_117", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_117 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_118";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_118" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_118", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_118";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_118" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_118", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_118 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_119";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_119" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_119", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_119";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_119" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_119", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_119 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_120";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_120" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_120", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_120";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_120" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_120", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_120 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_121";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_121" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_121", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_121";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_121" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_121", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_121 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_122";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_122" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_122", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_122";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_122" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_122", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_122 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_123";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_123" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_123", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_123";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_123" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_123", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_123 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_124";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_124" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_124", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_124";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_124" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_124", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_124 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_125";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_125" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_125", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_125";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_125" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_125", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_125 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_126";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_126" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_126", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_126";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_126" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_126", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_126 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_127";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_127" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_127", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_127";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_127" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_127", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_127 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_128";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_128" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_128", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_128";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_128" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_128", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_128 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_129";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_129" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_129", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_129";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_129" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_129", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_129 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_130";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_130" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_130", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_130";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_130" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_130", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_130 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_131";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_131" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_131", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_131";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_131" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_131", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_131 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_132";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_132" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_132", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_132";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_132" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_132", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_132 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_133";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_133" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_133", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_133";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_133" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_133", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_133 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_134";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_134" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_134", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_134";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_134" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_134", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_134 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_135";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_135" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_135", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_135";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_135" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_135", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_135 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_136";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_136" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_136", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_136";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_136" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_136", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_136 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_137";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_137" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_137", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_137";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_137" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_137", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_137 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_138";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_138" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_138", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_138";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_138" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_138", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_138 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_139";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_139" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_139", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_139";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_139" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_139", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_139 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_140";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_140" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_140", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_140";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_140" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_140", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_140 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_141";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_141" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_141", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_141";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_141" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_141", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_141 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_142";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_142" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_142", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_142";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_142" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_142", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_142 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_143";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_143" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_143", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_143";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_143" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_143", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_143 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_144";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_144" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_144", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_144";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_144" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_144", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_144 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_145";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_145" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_145", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_145";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_145" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_145", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_145 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_146";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_146" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_146", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_146";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_146" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_146", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_146 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_147";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_147" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_147", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_147";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_147" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_147", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_147 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_148";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_148" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_148", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_148";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_148" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_148", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_148 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_149";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_149" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_149", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_149";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_149" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_149", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_149 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_150";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_150" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_150", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_150";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_150" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_150", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_150 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_151";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_151" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_151", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_151";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_151" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_151", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_151 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_152";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_152" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_152", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_152";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_152" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_152", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_152 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_153";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_153" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_153", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_153";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_153" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_153", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_153 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_154";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_154" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_154", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_154";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_154" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_154", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_154 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_155";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_155" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_155", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_155";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_155" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_155", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_155 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_156";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_156" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_156", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_156";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_156" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_156", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_156 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_157";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_157" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_157", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_157";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_157" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_157", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_157 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_158";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_158" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_158", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_158";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_158" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_158", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_158 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_159";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_159" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_159", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_159";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_159" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_159", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_159 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_160";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_160" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_160", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_160";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_160" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_160", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_160 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_161";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_161" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_161", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_161";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_161" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_161", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_161 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_162";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_162" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_162", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_162";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_162" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_162", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_162 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_163";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_163" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_163", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_163";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_163" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_163", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_163 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_164";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_164" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_164", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_164";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_164" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_164", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_164 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_165";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_165" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_165", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_165";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_165" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_165", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_165 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_166";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_166" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_166", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_166";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_166" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_166", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_166 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_167";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_167" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_167", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_167";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_167" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_167", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_167 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_168";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_168" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_168", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_168";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_168" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_168", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_168 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_169";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_169" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_169", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_169";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_169" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_169", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_169 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_170";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_170" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_170", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_170";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_170" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_170", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_170 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_171";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_171" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_171", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_171";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_171" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_171", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_171 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_172";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_172" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_172", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_172";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_172" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_172", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_172 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_173";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_173" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_173", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_173";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_173" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_173", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_173 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_174";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_174" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_174", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_174";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_174" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_174", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_174 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_175";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_175" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_175", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_175";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_175" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_175", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_175 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_176";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_176" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_176", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_176";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_176" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_176", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_176 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_177";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_177" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_177", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_177";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_177" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_177", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_177 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_178";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_178" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_178", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_178";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_178" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_178", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_178 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_179";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_179" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_179", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_179";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_179" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_179", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_179 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_180";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_180" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_180", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_180";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_180" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_180", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_180 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_181";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_181" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_181", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_181";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_181" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_181", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_181 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_182";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_182" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_182", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_182";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_182" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_182", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_182 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_183";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_183" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_183", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_183";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_183" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_183", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_183 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_184";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_184" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_184", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_184";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_184" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_184", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_184 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_185";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_185" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_185", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_185";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_185" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_185", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_185 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_186";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_186" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_186", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_186";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_186" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_186", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_186 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_187";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_187" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_187", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_187";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_187" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_187", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_187 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_188";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_188" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_188", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_188";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_188" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_188", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_188 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_189";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_189" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_189", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_189";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_189" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_189", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_189 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_190";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_190" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_190", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_190";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_190" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_190", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_190 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_191";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_191" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_191", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_191";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_191" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_191", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_191 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_192";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_192" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_192", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_192";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_192" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_192", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_192 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_193";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_193" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_193", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_193";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_193" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_193", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_193 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_194";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_194" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_194", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_194";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_194" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_194", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_194 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_195";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_195" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_195", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_195";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_195" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_195", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_195 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_196";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_196" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_196", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_196";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_196" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_196", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_196 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_197";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_197" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_197", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_197";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_197" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_197", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_197 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_198";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_198" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_198", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_198";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_198" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_198", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_198 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_199";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_199" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_199", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_199";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_199" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_199", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_199 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_200";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_200" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_200", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_200";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_200" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_200", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_200 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_201";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_201" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_201", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_201";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_201" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_201", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_201 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_202";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_202" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_202", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_202";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_202" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_202", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_202 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_203";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_203" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_203", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_203";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_203" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_203", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_203 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_204";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_204" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_204", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_204";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_204" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_204", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_204 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_205";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_205" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_205", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_205";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_205" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_205", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_205 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_206";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_206" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_206", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_206";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_206" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_206", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_206 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_207";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_207" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_207", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_207";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_207" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_207", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_207 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_208";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_208" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_208", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_208";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_208" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_208", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_208 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_209";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_209" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_209", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_209";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_209" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_209", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_209 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_210";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_210" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_210", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_210";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_210" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_210", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_210 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_211";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_211" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_211", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_211";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_211" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_211", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_211 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_212";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_212" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_212", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_212";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_212" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_212", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_212 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_213";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_213" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_213", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_213";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_213" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_213", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_213 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_214";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_214" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_214", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_214";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_214" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_214", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_214 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_215";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_215" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_215", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_215";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_215" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_215", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_215 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_216";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_216" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_216", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_216";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_216" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_216", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_216 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_217";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_217" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_217", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_217";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_217" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_217", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_217 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_218";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_218" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_218", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_218";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_218" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_218", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_218 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_219";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_219" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_219", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_219";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_219" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_219", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_219 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_220";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_220" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_220", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_220";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_220" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_220", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_220 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_221";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_221" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_221", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_221";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_221" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_221", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_221 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_222";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_222" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_222", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_222";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_222" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_222", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_222 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_223";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_223" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_223", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_223";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_223" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_223", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_223 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_224";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_224" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_224", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_224";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_224" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_224", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_224 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_225";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_225" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_225", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_225";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_225" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_225", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_225 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_38";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_38" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_38", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_38";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_38" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_38", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_38 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_39";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_39" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_39", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_39";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_39" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_39", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_39 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints HKWeight_53";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.HKWeight_53" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.HKWeight_53", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints HKWeight_53";\ \ ELSE\ $ "Wanapum Constraints.HKWeight_53" [] := "OptValue"( $ "Wanapum Constraints.HKWeight_53", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a HKWeight_53 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Daily Low Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Daily Low Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Daily Low Flow", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Daily Low Flow";\ \ ELSE\ $ "Priest Rapids Constraints.Daily Low Flow" [] := "OptValue"( $ "Priest Rapids Constraints.Daily Low Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Daily Low Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Daily High Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Daily High Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Daily High Flow", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Daily High Flow";\ \ ELSE\ $ "Priest Rapids Constraints.Daily High Flow" [] := "OptValue"( $ "Priest Rapids Constraints.Daily High Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Daily High Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Priest Rapids Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Priest Rapids Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Priest Rapids Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Priest Rapids Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Shifted Operating Head";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Shifted Operating Head" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Shifted Operating Head", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Shifted Operating Head";\ \ ELSE\ $ "Priest Rapids Constraints.Shifted Operating Head" [] := "OptValue"( $ "Priest Rapids Constraints.Shifted Operating Head", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Shifted Operating Head value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Shifted Turbine Release";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Shifted Turbine Release" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Shifted Turbine Release", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Shifted Turbine Release";\ \ ELSE\ $ "Priest Rapids Constraints.Shifted Turbine Release" [] := "OptValue"( $ "Priest Rapids Constraints.Shifted Turbine Release", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Shifted Turbine Release value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Efficiency";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Efficiency" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Efficiency", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Efficiency";\ \ ELSE\ $ "Priest Rapids Constraints.Efficiency" [] := "OptValue"( $ "Priest Rapids Constraints.Efficiency", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Efficiency value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HK";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HK" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HK", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HK";\ \ ELSE\ $ "Priest Rapids Constraints.HK" [] := "OptValue"( $ "Priest Rapids Constraints.HK", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HK value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_0" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_0", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_0";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_0" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_0", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_0 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_1" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_1", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_1";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_1" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_1", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_1 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_10" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_10", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_10";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_10" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_10", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_10 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_11" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_11", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_11";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_11" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_11", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_11 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_12" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_12", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_12";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_12" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_12", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_12 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_13" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_13", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_13";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_13" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_13", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_13 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_14" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_14", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_14";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_14" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_14", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_14 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_15" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_15", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_15";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_15" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_15", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_15 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_16" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_16", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_16";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_16" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_16", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_16 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_17" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_17", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_17";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_17" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_17", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_17 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_18" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_18", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_18";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_18" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_18", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_18 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_19" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_19", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_19";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_19" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_19", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_19 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_2" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_2", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_2";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_2" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_2", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_2 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_20" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_20", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_20";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_20" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_20", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_20 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_21" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_21", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_21";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_21" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_21", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_21 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_22" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_22", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_22";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_22" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_22", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_22 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_23" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_23", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_23";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_23" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_23", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_23 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_24" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_24", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_24";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_24" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_24", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_24 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_25" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_25", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_25";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_25" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_25", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_25 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_3" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_3", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_3";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_3" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_3", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_3 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_4" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_4", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_4";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_4" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_4", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_4 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_5" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_5", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_5";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_5" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_5", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_5 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_6" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_6", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_6";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_6" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_6", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_6 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_7" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_7", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_7";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_7" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_7", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_7 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_8" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_8", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_8";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_8" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_8", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_8 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_9" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_9", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_9";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_9" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_9", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_9 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_26";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_26" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_26", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_26";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_26" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_26", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_26 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_27";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_27" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_27", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_27";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_27" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_27", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_27 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_28";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_28" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_28", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_28";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_28" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_28", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_28 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_29";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_29" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_29", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_29";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_29" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_29", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_29 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_30";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_30" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_30", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_30";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_30" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_30", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_30 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_31";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_31" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_31", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_31";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_31" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_31", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_31 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_32";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_32" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_32", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_32";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_32" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_32", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_32 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_33";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_33" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_33", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_33";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_33" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_33", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_33 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_34";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_34" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_34", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_34";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_34" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_34", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_34 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_35";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_35" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_35", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_35";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_35" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_35", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_35 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_36";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_36" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_36", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_36";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_36" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_36", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_36 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_37";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_37" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_37", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_37";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_37" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_37", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_37 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_40";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_40" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_40", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_40";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_40" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_40", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_40 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_41";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_41" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_41", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_41";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_41" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_41", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_41 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_42";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_42" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_42", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_42";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_42" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_42", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_42 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_43";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_43" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_43", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_43";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_43" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_43", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_43 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_44";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_44" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_44", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_44";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_44" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_44", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_44 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_45";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_45" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_45", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_45";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_45" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_45", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_45 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_46";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_46" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_46", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_46";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_46" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_46", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_46 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_47";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_47" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_47", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_47";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_47" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_47", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_47 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_48";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_48" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_48", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_48";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_48" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_48", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_48 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_49";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_49" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_49", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_49";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_49" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_49", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_49 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_50";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_50" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_50", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_50";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_50" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_50", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_50 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_51";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_51" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_51", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_51";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_51" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_51", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_51 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_52";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_52" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_52", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_52";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_52" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_52", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_52 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_54";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_54" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_54", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_54";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_54" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_54", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_54 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_55";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_55" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_55", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_55";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_55" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_55", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_55 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_56";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_56" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_56", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_56";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_56" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_56", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_56 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_57";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_57" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_57", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_57";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_57" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_57", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_57 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_58";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_58" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_58", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_58";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_58" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_58", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_58 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_59";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_59" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_59", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_59";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_59" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_59", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_59 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_60";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_60" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_60", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_60";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_60" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_60", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_60 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_61";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_61" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_61", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_61";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_61" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_61", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_61 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_62";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_62" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_62", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_62";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_62" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_62", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_62 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_63";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_63" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_63", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_63";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_63" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_63", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_63 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_64";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_64" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_64", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_64";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_64" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_64", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_64 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_65";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_65" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_65", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_65";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_65" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_65", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_65 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_66";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_66" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_66", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_66";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_66" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_66", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_66 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_67";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_67" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_67", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_67";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_67" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_67", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_67 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_68";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_68" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_68", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_68";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_68" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_68", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_68 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_69";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_69" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_69", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_69";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_69" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_69", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_69 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_70";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_70" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_70", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_70";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_70" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_70", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_70 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_71";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_71" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_71", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_71";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_71" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_71", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_71 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_72";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_72" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_72", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_72";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_72" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_72", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_72 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_73";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_73" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_73", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_73";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_73" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_73", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_73 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_74";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_74" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_74", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_74";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_74" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_74", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_74 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_75";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_75" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_75", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_75";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_75" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_75", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_75 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_100";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_100" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_100", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_100";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_100" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_100", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_100 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_76";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_76" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_76", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_76";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_76" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_76", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_76 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_77";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_77" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_77", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_77";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_77" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_77", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_77 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_78";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_78" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_78", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_78";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_78" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_78", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_78 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_79";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_79" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_79", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_79";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_79" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_79", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_79 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_80";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_80" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_80", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_80";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_80" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_80", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_80 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_81";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_81" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_81", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_81";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_81" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_81", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_81 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_82";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_82" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_82", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_82";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_82" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_82", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_82 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_83";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_83" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_83", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_83";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_83" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_83", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_83 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_84";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_84" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_84", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_84";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_84" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_84", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_84 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_85";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_85" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_85", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_85";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_85" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_85", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_85 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_86";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_86" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_86", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_86";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_86" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_86", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_86 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_87";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_87" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_87", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_87";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_87" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_87", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_87 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_88";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_88" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_88", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_88";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_88" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_88", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_88 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_89";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_89" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_89", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_89";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_89" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_89", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_89 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_90";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_90" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_90", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_90";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_90" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_90", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_90 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_91";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_91" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_91", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_91";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_91" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_91", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_91 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_92";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_92" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_92", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_92";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_92" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_92", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_92 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_93";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_93" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_93", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_93";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_93" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_93", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_93 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_94";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_94" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_94", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_94";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_94" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_94", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_94 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_95";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_95" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_95", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_95";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_95" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_95", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_95 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_96";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_96" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_96", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_96";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_96" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_96", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_96 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_97";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_97" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_97", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_97";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_97" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_97", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_97 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_98";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_98" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_98", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_98";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_98" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_98", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_98 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_99";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_99" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_99", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_99";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_99" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_99", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_99 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_101";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_101" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_101", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_101";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_101" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_101", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_101 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_102";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_102" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_102", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_102";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_102" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_102", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_102 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_103";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_103" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_103", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_103";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_103" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_103", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_103 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_104";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_104" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_104", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_104";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_104" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_104", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_104 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_105";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_105" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_105", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_105";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_105" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_105", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_105 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_106";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_106" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_106", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_106";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_106" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_106", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_106 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_107";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_107" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_107", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_107";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_107" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_107", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_107 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_108";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_108" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_108", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_108";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_108" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_108", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_108 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_109";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_109" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_109", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_109";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_109" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_109", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_109 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_110";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_110" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_110", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_110";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_110" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_110", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_110 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_111";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_111" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_111", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_111";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_111" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_111", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_111 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_112";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_112" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_112", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_112";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_112" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_112", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_112 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_113";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_113" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_113", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_113";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_113" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_113", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_113 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_114";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_114" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_114", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_114";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_114" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_114", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_114 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_115";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_115" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_115", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_115";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_115" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_115", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_115 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_116";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_116" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_116", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_116";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_116" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_116", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_116 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_117";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_117" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_117", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_117";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_117" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_117", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_117 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_118";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_118" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_118", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_118";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_118" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_118", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_118 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_119";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_119" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_119", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_119";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_119" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_119", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_119 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_120";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_120" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_120", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_120";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_120" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_120", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_120 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_121";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_121" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_121", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_121";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_121" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_121", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_121 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_122";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_122" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_122", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_122";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_122" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_122", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_122 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_123";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_123" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_123", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_123";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_123" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_123", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_123 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_124";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_124" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_124", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_124";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_124" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_124", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_124 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_125";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_125" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_125", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_125";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_125" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_125", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_125 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_126";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_126" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_126", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_126";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_126" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_126", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_126 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_127";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_127" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_127", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_127";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_127" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_127", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_127 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_128";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_128" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_128", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_128";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_128" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_128", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_128 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_129";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_129" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_129", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_129";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_129" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_129", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_129 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_130";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_130" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_130", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_130";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_130" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_130", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_130 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_131";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_131" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_131", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_131";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_131" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_131", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_131 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_132";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_132" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_132", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_132";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_132" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_132", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_132 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_133";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_133" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_133", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_133";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_133" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_133", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_133 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_134";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_134" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_134", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_134";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_134" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_134", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_134 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_135";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_135" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_135", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_135";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_135" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_135", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_135 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_136";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_136" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_136", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_136";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_136" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_136", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_136 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_137";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_137" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_137", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_137";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_137" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_137", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_137 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_138";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_138" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_138", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_138";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_138" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_138", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_138 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_139";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_139" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_139", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_139";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_139" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_139", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_139 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_140";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_140" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_140", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_140";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_140" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_140", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_140 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_141";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_141" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_141", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_141";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_141" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_141", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_141 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_142";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_142" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_142", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_142";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_142" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_142", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_142 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_143";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_143" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_143", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_143";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_143" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_143", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_143 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_144";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_144" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_144", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_144";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_144" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_144", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_144 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_145";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_145" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_145", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_145";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_145" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_145", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_145 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_146";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_146" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_146", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_146";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_146" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_146", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_146 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_147";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_147" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_147", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_147";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_147" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_147", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_147 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_148";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_148" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_148", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_148";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_148" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_148", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_148 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_149";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_149" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_149", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_149";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_149" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_149", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_149 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_150";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_150" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_150", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_150";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_150" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_150", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_150 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_151";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_151" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_151", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_151";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_151" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_151", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_151 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_152";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_152" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_152", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_152";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_152" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_152", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_152 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_153";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_153" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_153", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_153";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_153" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_153", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_153 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_154";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_154" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_154", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_154";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_154" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_154", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_154 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_155";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_155" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_155", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_155";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_155" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_155", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_155 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_156";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_156" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_156", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_156";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_156" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_156", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_156 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_157";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_157" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_157", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_157";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_157" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_157", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_157 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_158";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_158" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_158", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_158";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_158" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_158", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_158 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_159";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_159" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_159", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_159";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_159" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_159", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_159 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_160";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_160" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_160", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_160";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_160" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_160", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_160 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_161";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_161" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_161", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_161";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_161" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_161", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_161 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_162";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_162" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_162", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_162";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_162" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_162", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_162 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_163";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_163" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_163", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_163";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_163" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_163", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_163 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_164";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_164" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_164", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_164";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_164" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_164", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_164 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_165";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_165" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_165", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_165";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_165" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_165", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_165 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_166";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_166" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_166", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_166";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_166" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_166", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_166 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_167";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_167" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_167", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_167";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_167" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_167", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_167 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_168";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_168" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_168", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_168";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_168" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_168", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_168 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_169";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_169" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_169", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_169";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_169" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_169", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_169 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_170";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_170" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_170", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_170";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_170" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_170", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_170 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_171";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_171" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_171", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_171";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_171" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_171", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_171 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_172";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_172" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_172", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_172";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_172" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_172", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_172 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_173";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_173" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_173", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_173";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_173" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_173", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_173 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_174";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_174" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_174", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_174";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_174" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_174", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_174 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_175";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_175" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_175", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_175";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_175" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_175", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_175 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_176";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_176" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_176", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_176";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_176" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_176", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_176 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_177";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_177" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_177", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_177";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_177" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_177", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_177 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_178";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_178" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_178", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_178";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_178" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_178", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_178 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_179";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_179" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_179", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_179";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_179" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_179", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_179 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_180";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_180" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_180", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_180";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_180" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_180", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_180 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_181";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_181" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_181", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_181";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_181" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_181", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_181 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_182";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_182" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_182", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_182";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_182" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_182", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_182 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_183";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_183" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_183", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_183";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_183" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_183", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_183 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_184";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_184" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_184", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_184";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_184" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_184", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_184 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_185";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_185" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_185", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_185";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_185" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_185", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_185 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_186";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_186" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_186", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_186";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_186" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_186", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_186 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_187";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_187" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_187", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_187";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_187" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_187", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_187 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_188";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_188" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_188", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_188";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_188" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_188", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_188 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_189";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_189" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_189", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_189";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_189" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_189", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_189 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_190";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_190" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_190", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_190";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_190" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_190", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_190 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_191";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_191" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_191", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_191";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_191" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_191", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_191 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_192";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_192" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_192", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_192";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_192" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_192", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_192 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_193";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_193" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_193", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_193";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_193" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_193", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_193 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_194";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_194" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_194", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_194";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_194" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_194", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_194 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_195";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_195" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_195", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_195";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_195" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_195", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_195 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_196";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_196" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_196", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_196";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_196" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_196", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_196 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_197";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_197" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_197", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_197";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_197" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_197", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_197 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_198";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_198" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_198", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_198";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_198" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_198", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_198 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_199";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_199" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_199", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_199";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_199" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_199", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_199 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_200";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_200" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_200", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_200";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_200" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_200", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_200 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_201";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_201" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_201", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_201";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_201" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_201", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_201 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_202";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_202" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_202", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_202";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_202" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_202", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_202 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_203";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_203" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_203", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_203";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_203" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_203", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_203 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_204";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_204" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_204", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_204";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_204" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_204", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_204 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_205";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_205" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_205", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_205";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_205" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_205", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_205 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_206";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_206" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_206", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_206";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_206" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_206", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_206 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_207";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_207" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_207", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_207";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_207" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_207", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_207 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_208";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_208" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_208", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_208";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_208" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_208", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_208 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_209";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_209" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_209", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_209";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_209" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_209", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_209 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_210";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_210" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_210", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_210";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_210" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_210", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_210 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_211";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_211" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_211", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_211";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_211" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_211", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_211 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_212";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_212" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_212", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_212";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_212" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_212", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_212 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_213";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_213" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_213", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_213";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_213" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_213", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_213 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_214";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_214" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_214", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_214";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_214" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_214", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_214 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_215";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_215" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_215", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_215";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_215" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_215", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_215 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_216";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_216" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_216", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_216";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_216" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_216", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_216 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_217";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_217" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_217", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_217";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_217" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_217", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_217 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_218";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_218" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_218", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_218";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_218" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_218", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_218 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_219";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_219" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_219", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_219";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_219" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_219", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_219 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_220";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_220" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_220", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_220";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_220" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_220", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_220 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_221";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_221" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_221", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_221";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_221" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_221", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_221 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_222";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_222" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_222", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_222";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_222" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_222", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_222 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_223";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_223" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_223", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_223";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_223" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_223", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_223 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_224";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_224" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_224", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_224";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_224" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_224", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_224 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_225";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_225" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_225", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_225";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_225" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_225", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_225 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_38";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_38" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_38", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_38";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_38" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_38", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_38 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_39";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_39" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_39", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_39";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_39" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_39", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_39 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints HKWeight_53";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.HKWeight_53" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.HKWeight_53", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints HKWeight_53";\ \ ELSE\ $ "Priest Rapids Constraints.HKWeight_53" [] := "OptValue"( $ "Priest Rapids Constraints.HKWeight_53", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a HKWeight_53 value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Revised Request As Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Revised Request As Flow" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Revised Request As Flow", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Revised Request As Flow";\ \ ELSE\ $ "Chief Joseph Constraints.Revised Request As Flow" [] := "OptValue"( $ "Chief Joseph Constraints.Revised Request As Flow", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Revised Request As Flow value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Delivered Energy" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Delivered Energy", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Delivered Energy";\ \ ELSE\ $ "Chief Joseph Constraints.Delivered Energy" [] := "OptValue"( $ "Chief Joseph Constraints.Delivered Energy", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Delivered Energy value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Bias" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Bias", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Bias";\ \ ELSE\ $ "Chief Joseph Constraints.Bias" [] := "OptValue"( $ "Chief Joseph Constraints.Bias", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Bias value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Accumulated Exchange" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Accumulated Exchange", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Accumulated Exchange";\ \ ELSE\ $ "Chief Joseph Constraints.Accumulated Exchange" [] := "OptValue"( $ "Chief Joseph Constraints.Accumulated Exchange", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Accumulated Exchange value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Chief Joseph Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Chief Joseph Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Chief Joseph Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Chief Joseph Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Chief Joseph Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Chief Joseph Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Chief Joseph Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Chief Joseph Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Delivered Energy" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Delivered Energy", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Delivered Energy";\ \ ELSE\ $ "Grand Coulee Constraints.Delivered Energy" [] := "OptValue"( $ "Grand Coulee Constraints.Delivered Energy", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Delivered Energy value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Bias" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Bias", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Bias";\ \ ELSE\ $ "Grand Coulee Constraints.Bias" [] := "OptValue"( $ "Grand Coulee Constraints.Bias", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Bias value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Accumulated Exchange" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Accumulated Exchange", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Accumulated Exchange";\ \ ELSE\ $ "Grand Coulee Constraints.Accumulated Exchange" [] := "OptValue"( $ "Grand Coulee Constraints.Accumulated Exchange", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Accumulated Exchange value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Bias Positive Limit";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Bias Positive Limit" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Bias Positive Limit", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Bias Positive Limit";\ \ ELSE\ $ "Grand Coulee Constraints.Bias Positive Limit" [] := "OptValue"( $ "Grand Coulee Constraints.Bias Positive Limit", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Bias Positive Limit value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Bias Negative Limit";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Bias Negative Limit" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Bias Negative Limit", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Bias Negative Limit";\ \ ELSE\ $ "Grand Coulee Constraints.Bias Negative Limit" [] := "OptValue"( $ "Grand Coulee Constraints.Bias Negative Limit", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Bias Negative Limit value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Turbine Release Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Turbine Release Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Turbine Release Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Turbine Release Positive Curvature";\ \ ELSE\ $ "Grand Coulee Constraints.Turbine Release Positive Curvature" [] := "OptValue"( $ "Grand Coulee Constraints.Turbine Release Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Turbine Release Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Grand Coulee Constraints Turbine Release Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Grand Coulee Constraints.Turbine Release Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Grand Coulee Constraints.Turbine Release Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Grand Coulee Constraints Turbine Release Negative Curvature";\ \ ELSE\ $ "Grand Coulee Constraints.Turbine Release Negative Curvature" [] := "OptValue"( $ "Grand Coulee Constraints.Turbine Release Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Grand Coulee Constraints already has a Turbine Release Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Requests Nonfed Delivered Energy";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Requests.Nonfed Delivered Energy" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Requests.Nonfed Delivered Energy", @"t" )) THEN\ PRINT "No optimal value for Requests Nonfed Delivered Energy";\ \ ELSE\ $ "Requests.Nonfed Delivered Energy" [] := "OptValue"( $ "Requests.Nonfed Delivered Energy", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Requests already has a Nonfed Delivered Energy value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Minimized Ending Accumulated Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Minimized Ending Accumulated Exchange" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Minimized Ending Accumulated Exchange", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Minimized Ending Accumulated Exchange";\ \ ELSE\ $ "Federal Constraints.Minimized Ending Accumulated Exchange" [] := "OptValue"( $ "Federal Constraints.Minimized Ending Accumulated Exchange", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Minimized Ending Accumulated Exchange value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Maximized Ending Federal Storage";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Maximized Ending Federal Storage" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Maximized Ending Federal Storage", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Maximized Ending Federal Storage";\ \ ELSE\ $ "Federal Constraints.Maximized Ending Federal Storage" [] := "OptValue"( $ "Federal Constraints.Maximized Ending Federal Storage", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Maximized Ending Federal Storage value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Bias Negative Limit";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Bias Negative Limit" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Bias Negative Limit", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Bias Negative Limit";\ \ ELSE\ $ "Federal Constraints.Bias Negative Limit" [] := "OptValue"( $ "Federal Constraints.Bias Negative Limit", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Bias Negative Limit value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Bias Positive Limit";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Bias Positive Limit" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Bias Positive Limit", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Bias Positive Limit";\ \ ELSE\ $ "Federal Constraints.Bias Positive Limit" [] := "OptValue"( $ "Federal Constraints.Bias Positive Limit", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Bias Positive Limit value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Anticipated Load Shift";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Anticipated Load Shift" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Anticipated Load Shift", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Anticipated Load Shift";\ \ ELSE\ $ "Federal Constraints.Anticipated Load Shift" [] := "OptValue"( $ "Federal Constraints.Anticipated Load Shift", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Anticipated Load Shift value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Bias Positive Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Bias Positive Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Bias Positive Curvature", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Bias Positive Curvature";\ \ ELSE\ $ "Federal Constraints.Bias Positive Curvature" [] := "OptValue"( $ "Federal Constraints.Bias Positive Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Bias Positive Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Federal Constraints Bias Negative Curvature";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Federal Constraints.Bias Negative Curvature" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Federal Constraints.Bias Negative Curvature", @"t" )) THEN\ PRINT "No optimal value for Federal Constraints Bias Negative Curvature";\ \ ELSE\ $ "Federal Constraints.Bias Negative Curvature" [] := "OptValue"( $ "Federal Constraints.Bias Negative Curvature", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Federal Constraints already has a Bias Negative Curvature value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Nonfederal Data Outflow Average";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Nonfederal Data.Outflow Average" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Nonfederal Data.Outflow Average", @"t" )) THEN\ PRINT "No optimal value for Nonfederal Data Outflow Average";\ \ ELSE\ $ "Nonfederal Data.Outflow Average" [] := "OptValue"( $ "Nonfederal Data.Outflow Average", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Nonfederal Data already has a Outflow Average value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Draft Variables";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Rocky Reach Constraints Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Draft Feet" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Draft Feet", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Draft Feet";\ \ ELSE\ $ "Rocky Reach Constraints.Draft Feet" [] := "OptValue"( $ "Rocky Reach Constraints.Draft Feet", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Draft Feet value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints Draft Percent";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Draft Percent" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Draft Percent", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Draft Percent";\ \ ELSE\ $ "Rocky Reach Constraints.Draft Percent" [] := "OptValue"( $ "Rocky Reach Constraints.Draft Percent", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Draft Percent value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rocky Reach Constraints Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rocky Reach Constraints.Draft Volume" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rocky Reach Constraints.Draft Volume", @"t" )) THEN\ PRINT "No optimal value for Rocky Reach Constraints Draft Volume";\ \ ELSE\ $ "Rocky Reach Constraints.Draft Volume" [] := "OptValue"( $ "Rocky Reach Constraints.Draft Volume", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rocky Reach Constraints already has a Draft Volume value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Draft Percent";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Draft Percent" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Draft Percent", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Draft Percent";\ \ ELSE\ $ "Wells Constraints.Draft Percent" [] := "OptValue"( $ "Wells Constraints.Draft Percent", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Draft Percent value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Draft Volume" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Draft Volume", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Draft Volume";\ \ ELSE\ $ "Wells Constraints.Draft Volume" [] := "OptValue"( $ "Wells Constraints.Draft Volume", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Draft Volume value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wells Constraints Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wells Constraints.Draft Feet" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wells Constraints.Draft Feet", @"t" )) THEN\ PRINT "No optimal value for Wells Constraints Draft Feet";\ \ ELSE\ $ "Wells Constraints.Draft Feet" [] := "OptValue"( $ "Wells Constraints.Draft Feet", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wells Constraints already has a Draft Feet value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Draft Feet" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Draft Feet", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Draft Feet";\ \ ELSE\ $ "Rock Island Constraints.Draft Feet" [] := "OptValue"( $ "Rock Island Constraints.Draft Feet", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Draft Feet value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Draft Percent";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Draft Percent" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Draft Percent", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Draft Percent";\ \ ELSE\ $ "Rock Island Constraints.Draft Percent" [] := "OptValue"( $ "Rock Island Constraints.Draft Percent", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Draft Percent value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Rock Island Constraints Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Rock Island Constraints.Draft Volume" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Rock Island Constraints.Draft Volume", @"t" )) THEN\ PRINT "No optimal value for Rock Island Constraints Draft Volume";\ \ ELSE\ $ "Rock Island Constraints.Draft Volume" [] := "OptValue"( $ "Rock Island Constraints.Draft Volume", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Rock Island Constraints already has a Draft Volume value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Draft Feet" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Draft Feet", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Draft Feet";\ \ ELSE\ $ "Wanapum Constraints.Draft Feet" [] := "OptValue"( $ "Wanapum Constraints.Draft Feet", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Draft Feet value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Draft Percent";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Draft Percent" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Draft Percent", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Draft Percent";\ \ ELSE\ $ "Wanapum Constraints.Draft Percent" [] := "OptValue"( $ "Wanapum Constraints.Draft Percent", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Draft Percent value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Wanapum Constraints Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Wanapum Constraints.Draft Volume" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Wanapum Constraints.Draft Volume", @"t" )) THEN\ PRINT "No optimal value for Wanapum Constraints Draft Volume";\ \ ELSE\ $ "Wanapum Constraints.Draft Volume" [] := "OptValue"( $ "Wanapum Constraints.Draft Volume", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Wanapum Constraints already has a Draft Volume value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Draft Feet" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Draft Feet", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Draft Feet";\ \ ELSE\ $ "Priest Rapids Constraints.Draft Feet" [] := "OptValue"( $ "Priest Rapids Constraints.Draft Feet", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Draft Feet value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Draft Percent";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Draft Percent" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Draft Percent", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Draft Percent";\ \ ELSE\ $ "Priest Rapids Constraints.Draft Percent" [] := "OptValue"( $ "Priest Rapids Constraints.Draft Percent", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Draft Percent value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Priest Rapids Constraints Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Priest Rapids Constraints.Draft Volume" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Priest Rapids Constraints.Draft Volume", @"t" )) THEN\ PRINT "No optimal value for Priest Rapids Constraints Draft Volume";\ \ ELSE\ $ "Priest Rapids Constraints.Draft Volume" [] := "OptValue"( $ "Priest Rapids Constraints.Draft Volume", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Priest Rapids Constraints already has a Draft Volume value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Nonfederal Data Draft Percent without RIS";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Nonfederal Data.Draft Percent without RIS" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Nonfederal Data.Draft Percent without RIS", @"t" )) THEN\ PRINT "No optimal value for Nonfederal Data Draft Percent without RIS";\ \ ELSE\ $ "Nonfederal Data.Draft Percent without RIS" [] := "OptValue"( $ "Nonfederal Data.Draft Percent without RIS", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Nonfederal Data already has a Draft Percent without RIS value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Nonfederal Data Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Nonfederal Data.Draft Volume" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Nonfederal Data.Draft Volume", @"t" )) THEN\ PRINT "No optimal value for Nonfederal Data Draft Volume";\ \ ELSE\ $ "Nonfederal Data.Draft Volume" [] := "OptValue"( $ "Nonfederal Data.Draft Volume", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Nonfederal Data already has a Draft Volume value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Nonfederal Data Draft Volume Less RIS";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Nonfederal Data.Draft Volume Less RIS" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Nonfederal Data.Draft Volume Less RIS", @"t" )) THEN\ PRINT "No optimal value for Nonfederal Data Draft Volume Less RIS";\ \ ELSE\ $ "Nonfederal Data.Draft Volume Less RIS" [] := "OptValue"( $ "Nonfederal Data.Draft Volume Less RIS", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Nonfederal Data already has a Draft Volume Less RIS value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Set Nonfederal Data Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Nonfederal Data.Draft Feet" []) THEN\ IF_STATEMENT (IsNaN "OptValue"( $ "Nonfederal Data.Draft Feet", @"t" )) THEN\ PRINT "No optimal value for Nonfederal Data Draft Feet";\ \ ELSE\ $ "Nonfederal Data.Draft Feet" [] := "OptValue"( $ "Nonfederal Data.Draft Feet", @"t" );\ \ END_IF_STATEMENT;\ \ ELSE\ PRINT "Nonfederal Data already has a Draft Feet value, skipping setting of optimal value";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Check Opt Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Check for Opt Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT @"t" == @"Start Timestep";\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Data Validation.Initialization Successful" [] OR $ "Data Validation.Initialization Successful" [] != 0.00000000) THEN\ STOP_RUN_STATEMENT "Post-Optimization RBS run did not execute because the Initialization rules in the Pre-Optimization Simulation did not complete successfully";\ \ ELSE\ IF_STATEMENT (IsNaN "OptValue"( $ "Data Validation.Optimization Run Successful", @"Start Timestep" ) OR "OptValue"( $ "Data Validation.Optimization Run Successful", @"Start Timestep" ) != 0.00000000) THEN\ STOP_RUN_STATEMENT "Post-Optimization RBS run did not execute because the Optimization run did not complete successfully";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ END\ } # Section: Optimization Set Manager Section {Optimization Set Manager} set mgr "$ws.optSetMgr" $mgr loadedSet {RULESET\ NAME "MidC_OptGoals";\ AGENDA_ORDER DESCENDING;\ DESCRIPTION "";\ PRECISION 2;\ NOTES "";\ BEGIN\ \ POLICY_GROUP "Check for Success of Initialization";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Check Initialization Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ IF_STATEMENT (IsNaN $ "Data Validation.Initialization Successful" [] OR $ "Data Validation.Initialization Successful" [] != 0.00000000) THEN\ STOP_RUN_STATEMENT "Optimization run did not execute because the Initialization rules in the Pre-Optimization Simulation did not complete successfully";\ \ ELSE\ IF_STATEMENT (IsNaN $ "Priest Rapids.Storage" [@"Start Timestep - 1"] COMMENTED_BY "We are just checking one reservoir. We could check any of them.") THEN\ STOP_RUN_STATEMENT "Optimization run did not execute because the Pre-Optimization Simulation did not complete successfully";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "User Defined Variables";\ DESCRIPTION "This policy group defines all User-defined Variables. These functional constraints are set at the highest priority to assure that all of the proper relationships are established. The variables are all defined by hard constraints. They do not actually set any policy constraints. The slots for the User-defined Variable defined here are referenced in later priorities where the policy constraints are actually set. ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Bias, Accumulated Exchange, and Delivered Energy";\ DESCRIPTION "This goal defines Bias, Accumulated Exchange and Delivered Energy for Grand Coulee and Chief Joseph as well as Nonfed Delivered Energy and the Federal Anticipated Load Shift. Delivered Energy represents the generation that actually goes toward meeting the given project's request. Positive Bias represents generation at Federal projects that goes toward meeting Non-federal requests, and the converse is true for negative Bias. The Federal Anticipated Load Shift represents generation shifted from Grand Coulee to Chief Joseph (but credited to Grand Coulee) to accommodate increased flows out of Grand Coulee from positive Bias (and the converse in the case of negative Bias). In these constraints, Power for the Federal projects is expressed as the product of the Turbine Release and the Power Coeff Line Approx (H/K factor). This is the equivalent of the Line approximation in the Power LP Param table. The piecewise approximation cannot be used here due to the equality constraint (which implies a less than or equal to constraint).

    Accumulated Exchange for Grand Coulee and Chief Joseph is defined as the Accumulated Exchange at the previous timestep plus Bias (converted to Energy) for the current timestep.

    These User-defined Variables are referenced in the Federal Generation Requests constraints; Federal Bias Limits, Federal Accumulated Exchange Limits constraints; Target Bias Limits, Target Accumulated Exchange Limits constraints; and Nonfed Delivered Energy is referenced in the Nonfed Generation Requests constraint. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ IF_STATEMENT ("SlotFromDataObject"( res, "Power Coefficient Approximation" ) [t] > 0.00000000 "MW/kcfs") THEN\ CONSTRAINT "SlotFromDataObject"( res, "Bias Flow" ) [t] == "SlotFromDataObject"( res, "Bias" ) [t] / "SlotFromDataObject"( res, "Power Coefficient Approximation" ) [t];\ \ ELSE\ CONSTRAINT "SlotFromDataObject"( res, "Bias Flow" ) [t] == 0.00000000 "kcfs";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ CONSTRAINT $ "Chief Joseph Constraints.Bias Flow Combined" [t] == $ "Chief Joseph Constraints.Bias Flow" [t] + "GrandCouleeLagged"( $ "Grand Coulee Constraints.Bias Flow", t );\ \ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == ( FOR ( OBJECT nonFedRes IN "NonFedReservoirs"( ) ) STAT_SUM\ nonFedRes & "Power" [t]\ ENDFOR + ( $ "Grand Coulee Constraints.Bias" [t] + $ "Chief Joseph Constraints.Bias" [t] ) ) * 1.00000000 "hr" + ( $ "Grand Coulee Constraints.Spill Exchange Energy" [t] + $ "Chief Joseph Constraints.Spill Exchange Energy" [t] );\ \ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] == $ "Grand Coulee Constraints.Accumulated Exchange" [t - 1.00000000 "hr"] + $ "Grand Coulee Constraints.Bias" [t] * 1.00000000 "hr";\ \ CONSTRAINT $ "Chief Joseph Constraints.Accumulated Exchange" [t] == $ "Chief Joseph Constraints.Accumulated Exchange" [t - 1.00000000 "hr"] + $ "Chief Joseph Constraints.Bias" [t] * 1.00000000 "hr";\ \ ENDFOREACH;\ \ END;\ \ RULE "Priest Rapids Daily High and Low Flows for Flow Bands and CJAD II";\ DESCRIPTION "The Priest Rapids Flow Band constraints are only active during the Rearing Period, so the Daily Low Flow and Daily High Flow variables are only defined for that period at the final timestep of each day. A list of timesteps for which these constraints are active is created by the RearingPeriod function. If the run period is not during the Rearing Period, these constraints will be ignored. The Previous24HourWindow function makes a list of timesteps to compare against looking back from each midnight over the previous day. (The use of day + 1 hr as the reference timestep for this function has to do with how the function is defined. The inclusion of the additional 1 hr includes the midnight timestep in the list of timesteps being considered instead of stopping at the timestep prior to midnight.) The Daily Low Flow is set to be less than or equal to all Priest Rapids Outflow values for the day. After the Priest Rapids Flow Bands goal is evaluated it will be equal to one or more Outflow values for the day. Likewise the Daily High Flow is set to be greater than or equal to all Outflow values for the day. The difference between these two variables for each day is constrained in the Priest Rapids Flow Bands goal.

    The final IF statement is included so that the variables can be defined for the final day of the run when the run does not end at midnight.

    The Priest Rapids Flow Bands goal where these variables are applied is based on the Hanford Reach Agreement C.5. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsActiveSeasonFromDates"( "Rearing Period", t )) THEN\ FOREACH (DATETIME prevHoursInDay IN "PreviousDate"( t, @"1:00:00" ) TO t) DO\ CONSTRAINT $ "Priest Rapids Constraints.Daily Low Flow" [t] <= $ "Priest Rapids.Outflow" [prevHoursInDay];\ \ CONSTRAINT $ "Priest Rapids Constraints.Daily High Flow" [t] >= $ "Priest Rapids.Outflow" [prevHoursInDay];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Priest Rapids RLF Daylight Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (LIST days = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR SET_UNION { @"Finish Timestep" }) DO\ FOREACH (DATETIME day IN days) DO\ WITH_STATEMENT (DATETIME dayStart = "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" )) DO\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( day, @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids Constraints.RLF Daylight Outflow" [day] <= $ "Priest Rapids.Outflow" [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Nonfed Outflow Average";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Nonfederal Data.Outflow Average" [t] == FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Outflow" [t]\ ENDFOR / LENGTH "NonFedReservoirs"( );\ \ ENDFOREACH;\ \ END;\ \ RULE "Smoothing Variables";\ DESCRIPTION "The variables defined in this goal are later used to prevent unreasonable variability in the solution forTurbine Release and Bias.

    Turbine Release Positive Curvature and Turbine Release Negative Curvature are defined for all reservoirs. Bias Positive Curvature and Bias Negative Curvature are defined for the combined Federal Bias (Grand Coulee Bias plus Chief Joseph Bias). The Curvature variables are proportional to the second differential of the corresponding variable (the difference in slope from the two previous time intervals). The left-hand side could be written as
    (X[t] - X[t - 1]) - (X[t - 1] - X[t - 2])

    Expressing the right-hand-side as the difference between Positive and Negative Curvature allows both variables to be non-negative numbers. The Positive Curvature variable will be zero when the curvature (LHS) is negative, and the Negative Curvature variable will be zero when the LHS is positive.

    Tubine Release must be expressed as Outflow minus Spill for timesteps prior to the start of the run because Turbine Release is not an input for pre-run timesteps. Bias Curvature cannot be defined for the first two timesteps of the run because definition requires Bias from the previous two timesteps. Bias is not a pre-run input, and thus for the first two timesteps of the run, Bias is not available for the previous two timesteps. Once Bias is included as a pre-run input, Bias Curvature can be defined and constrained for all timesteps in the run.
    ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" , % "Priest Rapids" }) DO\ DESCRIPTION "Turbine Release is not an input for pre-run timesteps, so it must be calculated
    as Outflow minus Spill for those timesteps.";\ IF_STATEMENT (timestep - 2.00000000 "hr" < @"Start Timestep") THEN\ IF_STATEMENT (timestep - 1.00000000 "hr" < @"Start Timestep") THEN\ CONSTRAINT res & "Turbine Release" [timestep] + ( res & "Outflow" [timestep - 2.00000000 "hr"] - res & "Regulated Spill" [timestep - 2.00000000 "hr"] ) - 2.00000000 * ( res & "Outflow" [timestep - 1.00000000 "hr"] - res & "Regulated Spill" [timestep - 1.00000000 "hr"] ) == "SlotValueFromDataObject"( res, "Turbine Release Positive Curvature", timestep ) - "SlotValueFromDataObject"( res, "Turbine Release Negative Curvature", timestep );\ \ ELSE\ CONSTRAINT res & "Turbine Release" [timestep] + ( res & "Outflow" [timestep - 2.00000000 "hr"] - res & "Regulated Spill" [timestep - 2.00000000 "hr"] ) - 2.00000000 * res & "Turbine Release" [timestep - 1.00000000 "hr"] == "SlotValueFromDataObject"( res, "Turbine Release Positive Curvature", timestep ) - "SlotValueFromDataObject"( res, "Turbine Release Negative Curvature", timestep );\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "This is the basic form of the definition, used for most timesteps.";\ CONSTRAINT res & "Turbine Release" [timestep] + res & "Turbine Release" [timestep - 2.00000000 "hr"] - 2.00000000 * res & "Turbine Release" [timestep - 1.00000000 "hr"] == "SlotValueFromDataObject"( res, "Turbine Release Positive Curvature", timestep ) - "SlotValueFromDataObject"( res, "Turbine Release Negative Curvature", timestep );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (DATETIME timestep IN @"Start Timestep + 2" TO @"Finish Timestep") DO\ CONSTRAINT "BiasCurvature"( timestep ) == $ "Federal Constraints.Bias Positive Curvature" [timestep] - $ "Federal Constraints.Bias Negative Curvature" [timestep];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "HK Objective Variable Definitions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "HK Definition";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC numWeights = "ScalarValueFromDataObject"( res, "HK Count" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT "SlotFromDataObject"( res, "HK" ) [t] == FOR ( NUMERIC i IN "GetNumbers"( 0.00000000, numWeights - 1.00000000, 1.00000000 ) ) STAT_SUM\ "SlotFromDataObject"( res, "HKWeight_" CONCAT "IntegerToString"( i ) ) [t] * "SlotFromDataObject"( res, "HK Table 3D" ) [i, 2.00000000]\ ENDFOR;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Operating Head from HK Weights";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC numOH = "ScalarValueFromDataObject"( res, "HK Operating Head Count" )) DO\ WITH_STATEMENT (NUMERIC numQT = "ScalarValueFromDataObject"( res, "HK Turbine Release Count" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Operating Head" [t] == FOR ( NUMERIC i IN "GetNumbers"( 1.00000000, numOH, 1.00000000 ) ) STAT_SUM\ FOR ( NUMERIC j IN "GetNumbers"( 1.00000000, numQT, 1.00000000 ) ) STAT_SUM\ "SlotFromDataObject"( res, "HKWeight_" CONCAT "IntegerToString"( ( i - 1.00000000 ) * numQT + j - 1.00000000 ) ) [t] * "SlotFromDataObject"( res, "HK Table Operating Head" ) [i - 1.00000000, 0.00000000]\ ENDFOR\ ENDFOR;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Turbine Release from HK Weights";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC numOH = "ScalarValueFromDataObject"( res, "HK Operating Head Count" )) DO\ WITH_STATEMENT (NUMERIC numQT = "ScalarValueFromDataObject"( res, "HK Turbine Release Count" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Turbine Release" [t] == FOR ( NUMERIC i IN "GetNumbers"( 1.00000000, numQT, 1.00000000 ) ) STAT_SUM\ FOR ( NUMERIC j IN "GetNumbers"( 1.00000000, numOH, 1.00000000 ) ) STAT_SUM\ "SlotFromDataObject"( res, "HKWeight_" CONCAT "IntegerToString"( ( j - 1.00000000 ) * numQT + i - 1.00000000 ) ) [t] * "SlotFromDataObject"( res, "HK Table Turbine Release" ) [i - 1.00000000, 0.00000000]\ ENDFOR\ ENDFOR;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "HK Weights Sum Equal 1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC numWeights = "ScalarValueFromDataObject"( res, "HK Count" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT FOR ( NUMERIC i IN "GetNumbers"( 0.00000000, numWeights - 1.00000000, 1.00000000 ) ) STAT_SUM\ "SlotFromDataObject"( res, "HKWeight_" CONCAT "IntegerToString"( i ) ) [t]\ ENDFOR == 1.00000000;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Chief Joseph";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Chief Joseph Outflow";\ DESCRIPTION "This goal defines Bias, Accumulated Exchange and Delivered Energy for Grand Coulee and Chief Joseph as well as Nonfed Delivered Energy and the Federal Anticipated Load Shift. Delivered Energy represents the generation that actually goes toward meeting the given project's request. Positive Bias represents generation at Federal projects that goes toward meeting Non-federal requests, and the converse is true for negative Bias. The Federal Anticipated Load Shift represents generation shifted from Grand Coulee to Chief Joseph (but credited to Grand Coulee) to accommodate increased flows out of Grand Coulee from positive Bias (and the converse in the case of negative Bias). In these constraints, Power for the Federal projects is expressed as the product of the Turbine Release and the Power Coeff Line Approx (H/K factor). This is the equivalent of the Line approximation in the Power LP Param table. The piecewise approximation cannot be used here due to the equality constraint (which implies a less than or equal to constraint).

    Accumulated Exchange for Grand Coulee and Chief Joseph is defined as the Accumulated Exchange at the previous timestep plus Bias (converted to Energy) for the current timestep.

    These User-defined Variables are referenced in the Federal Generation Requests constraints; Federal Bias Limits, Federal Accumulated Exchange Limits constraints; Target Bias Limits, Target Accumulated Exchange Limits constraints; and Nonfed Delivered Energy is referenced in the Nonfed Generation Requests constraint. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Chief Joseph.Outflow" [t] == $ "Chief Joseph Constraints.Outflow Initial" [t] + $ "Chief Joseph Constraints.Bias Flow Combined" [t] COMMENTED_BY "This includes the flow change for Bias from GCL and CHJ.";\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Wells for Four Project Coordination";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Wells Outflow";\ DESCRIPTION "This goal defines Bias, Accumulated Exchange and Delivered Energy for Grand Coulee and Chief Joseph as well as Nonfed Delivered Energy and the Federal Anticipated Load Shift. Delivered Energy represents the generation that actually goes toward meeting the given project's request. Positive Bias represents generation at Federal projects that goes toward meeting Non-federal requests, and the converse is true for negative Bias. The Federal Anticipated Load Shift represents generation shifted from Grand Coulee to Chief Joseph (but credited to Grand Coulee) to accommodate increased flows out of Grand Coulee from positive Bias (and the converse in the case of negative Bias). In these constraints, Power for the Federal projects is expressed as the product of the Turbine Release and the Power Coeff Line Approx (H/K factor). This is the equivalent of the Line approximation in the Power LP Param table. The piecewise approximation cannot be used here due to the equality constraint (which implies a less than or equal to constraint).

    Accumulated Exchange for Grand Coulee and Chief Joseph is defined as the Accumulated Exchange at the previous timestep plus Bias (converted to Energy) for the current timestep.

    These User-defined Variables are referenced in the Federal Generation Requests constraints; Federal Bias Limits, Federal Accumulated Exchange Limits constraints; Target Bias Limits, Target Accumulated Exchange Limits constraints; and Nonfed Delivered Energy is referenced in the Nonfed Generation Requests constraint. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT "FourProjectCoordination"( );\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Wells.Outflow" [t] == $ "Wells Constraints.Outflow Initial" [t] + "Lagged"( % "CHJ to WEL", $ "Chief Joseph Constraints.Bias Flow Combined", t ) * $ "Wells Constraints.Bias Flow Fraction" [t];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "License Elevations and VB Min Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "License Min Pool Elevation";\ DESCRIPTION "This goal constrains the Pool Elevation for all reservoirs at all timesteps to be greater than or equal to the license minimum plus a Margin (buffer). The Margin is set differently for the Federal and Non-federal projects, thus the two different forms of the constraint. This minimum pool elevation may be overwritten by more restrictive constraints. The elevation values, with the exception of Grand Coulee and Rock Island, are based on the table in the Mid-Columbia hourly Coordination Implementation Manual, Chapter III.E.1. For Rock Island the elevation is based on the lowest elevation in the Energy Content vs. Elevation by Project table in Appendix A. For Grand Coulee the elevation comes from the lowest elevation in the Pacific Northwest Coordination Agreement Grand Coulee Reservoir Capacity Table provided to CADSWES by Grant County PUD.

    The Margins were added in November 2013 by CADSWES after discussions with Joe Taylor in order to better reflect actual operations. The Federal Margin is a scalar, and the Margin Adjust is a function of the Chief Joseph Initial Request As Flow calculated in an expression slot. The Non-federal Margin for each reservoir is calculated from a total Uncertainty Margin Volume that is a function of the Chief Joseph daily Outflow plus sideflows and increases with the square root of the lead time.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "Non-federal Minimum Elevations";\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Pool Elevation" [timestep] >= "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) + "SlotValueFromDataObject"( res, "Pool Elevation Min Margin", timestep );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Vernita Bar Min Flow";\ DESCRIPTION "This goal sets three types of constraints at equal priority.

    License Maximum Pool Elevations
    The Pool Elevation for all reservoirs at all timesteps must be less than or equal to the license maximum minus a Margin (buffer).The Margin is set differently for the Federal and Non-federal projects, thus the two different forms of the constraint. This maximum pool elevation may be overwritten by more restrictive constraints. The elevation values, with the exception of Grand Coulee and Rock Island, are based on the table in the Mid-Columbia hourly Coordination Implementation Manual, Chapter III.E.2. For Rock Island the elevation is based on the highest elevation in the Energy Content vs. Elevation by Project table in Appendix A. For Grand Coulee the elevation comes from the highest elevation in the Pacific Northwest Coordination Agreement Grand Coulee Reservoir Capacity Table provided to CADSWES by Grant County PUD.

    The Margins were added in November 2013 by CADSWES after discussions with Joe Taylor in order to better reflect actual operations. The Federal Margin is a scalar, and the Margin Adjust is a function of the Chief Joseph Initial Request As Flow calculated in an expression slot. The Non-federal Margin for each reservoir is calculated from a total Uncertainty Margin Volume that is a function of the Chief Joseph daily Outflow plus sideflows and increases with the square root of the lead time.

    Pateros Flood Control:
    The Wells Pool Elevation is constrained to be less than or equal to the elevation required for Pateros flood protection for a given Methow River flow. The constraint is based on the chart entitled Wells forebay elevation target for various Methow flows in the spreadsheet MethowFlowvsWellsFB.xls provided to CADSWES by Douglas County PUD via Joe Taylor, January 18, 2011. Based on the chart the maximum Wells Pool Elevation vs Methow Outflow is a linear relationship. The slope and intercept of the line are referenced from the Pateros Elevation Coeff and Pateros Elevation Intercept scalar slots on the Wells Constraints Data Object. Methow flows come from the Outflow values from the Methow River Reach Object and are forecasted inputs for each run.

    Vernita Bar Minimum Flow:
    The final constrain requires Priest Rapids Outflow to be greater than or equal the absolute minimum Vernita Bar flow at all timesteps. The actual Hanford Reach Agreement policy requires this flow at Vernita Bar, USGS 12478200, but the constraint here is on Priest Rapids Outflow to better reflect actual operations. A more restrictive (higher) flow may be set by other constraints such as Protection Level Flow constraints. The constraint references the Vernita Bar Constriants.Vernita Bar Min Flow scalar slot (36 kcfs). It is based on the Hanford Reach Agreement D.12. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Vernita Bar Normal Minimum Flow (36 kcfs); constraint actually applied to PRD Outflow";\ CONSTRAINT $ "Priest Rapids.Outflow" [timestep] >= $ "Vernita Bar Constraints.Vernita Bar Min Flow" [];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "License Max Pool Elev";\ DESCRIPTION "This goal sets three types of constraints at equal priority.

    License Maximum Pool Elevations
    The Pool Elevation for all reservoirs at all timesteps must be less than or equal to the license maximum minus a Margin (buffer).The Margin is set differently for the Federal and Non-federal projects, thus the two different forms of the constraint. This maximum pool elevation may be overwritten by more restrictive constraints. The elevation values, with the exception of Grand Coulee and Rock Island, are based on the table in the Mid-Columbia hourly Coordination Implementation Manual, Chapter III.E.2. For Rock Island the elevation is based on the highest elevation in the Energy Content vs. Elevation by Project table in Appendix A. For Grand Coulee the elevation comes from the highest elevation in the Pacific Northwest Coordination Agreement Grand Coulee Reservoir Capacity Table provided to CADSWES by Grant County PUD.

    The Margins were added in November 2013 by CADSWES after discussions with Joe Taylor in order to better reflect actual operations. The Federal Margin is a scalar, and the Margin Adjust is a function of the Chief Joseph Initial Request As Flow calculated in an expression slot. The Non-federal Margin for each reservoir is calculated from a total Uncertainty Margin Volume that is a function of the Chief Joseph daily Outflow plus sideflows and increases with the square root of the lead time.

    Pateros Flood Control:
    The Wells Pool Elevation is constrained to be less than or equal to the elevation required for Pateros flood protection for a given Methow River flow. The constraint is based on the chart entitled Wells forebay elevation target for various Methow flows in the spreadsheet MethowFlowvsWellsFB.xls provided to CADSWES by Douglas County PUD via Joe Taylor, January 18, 2011. Based on the chart the maximum Wells Pool Elevation vs Methow Outflow is a linear relationship. The slope and intercept of the line are referenced from the Pateros Elevation Coeff and Pateros Elevation Intercept scalar slots on the Wells Constraints Data Object. Methow flows come from the Outflow values from the Methow River Reach Object and are forecasted inputs for each run.

    Vernita Bar Minimum Flow:
    The final constrain requires Priest Rapids Outflow to be greater than or equal the absolute minimum Vernita Bar flow at all timesteps. The actual Hanford Reach Agreement policy requires this flow at Vernita Bar, USGS 12478200, but the constraint here is on Priest Rapids Outflow to better reflect actual operations. A more restrictive (higher) flow may be set by other constraints such as Protection Level Flow constraints. The constraint references the Vernita Bar Constriants.Vernita Bar Min Flow scalar slot (36 kcfs). It is based on the Hanford Reach Agreement D.12. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Non-federal License Max Pool Elevations; all elevation constraints have a Margin incorporated";\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ CONSTRAINT res & "Pool Elevation" [timestep] <= "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) - "SlotValueFromDataObject"( res, "Pool Elevation Max Margin", timestep );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Pateros Flood Control";\ DESCRIPTION "This goal sets three types of constraints at equal priority.

    License Maximum Pool Elevations
    The Pool Elevation for all reservoirs at all timesteps must be less than or equal to the license maximum minus a Margin (buffer).The Margin is set differently for the Federal and Non-federal projects, thus the two different forms of the constraint. This maximum pool elevation may be overwritten by more restrictive constraints. The elevation values, with the exception of Grand Coulee and Rock Island, are based on the table in the Mid-Columbia hourly Coordination Implementation Manual, Chapter III.E.2. For Rock Island the elevation is based on the highest elevation in the Energy Content vs. Elevation by Project table in Appendix A. For Grand Coulee the elevation comes from the highest elevation in the Pacific Northwest Coordination Agreement Grand Coulee Reservoir Capacity Table provided to CADSWES by Grant County PUD.

    The Margins were added in November 2013 by CADSWES after discussions with Joe Taylor in order to better reflect actual operations. The Federal Margin is a scalar, and the Margin Adjust is a function of the Chief Joseph Initial Request As Flow calculated in an expression slot. The Non-federal Margin for each reservoir is calculated from a total Uncertainty Margin Volume that is a function of the Chief Joseph daily Outflow plus sideflows and increases with the square root of the lead time.

    Pateros Flood Control:
    The Wells Pool Elevation is constrained to be less than or equal to the elevation required for Pateros flood protection for a given Methow River flow. The constraint is based on the chart entitled Wells forebay elevation target for various Methow flows in the spreadsheet MethowFlowvsWellsFB.xls provided to CADSWES by Douglas County PUD via Joe Taylor, January 18, 2011. Based on the chart the maximum Wells Pool Elevation vs Methow Outflow is a linear relationship. The slope and intercept of the line are referenced from the Pateros Elevation Coeff and Pateros Elevation Intercept scalar slots on the Wells Constraints Data Object. Methow flows come from the Outflow values from the Methow River Reach Object and are forecasted inputs for each run.

    Vernita Bar Minimum Flow:
    The final constrain requires Priest Rapids Outflow to be greater than or equal the absolute minimum Vernita Bar flow at all timesteps. The actual Hanford Reach Agreement policy requires this flow at Vernita Bar, USGS 12478200, but the constraint here is on Priest Rapids Outflow to better reflect actual operations. A more restrictive (higher) flow may be set by other constraints such as Protection Level Flow constraints. The constraint references the Vernita Bar Constriants.Vernita Bar Min Flow scalar slot (36 kcfs). It is based on the Hanford Reach Agreement D.12. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Pateros Flood Control";\ CONSTRAINT $ "Wells.Pool Elevation" [timestep] <= $ "Wells Constraints.Pateros Elevation Intercept" [] - $ "Wells Constraints.Pateros Elevation Coeff" [] * $ "Methow River.Outflow" [timestep] - $ "Wells Constraints.Pool Elevation Max Margin" [timestep];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Federal Bias Limits, Federal Accumulated Exchange Limits";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Bias Formal Limits, Accumulated Exchange Limits";\ DESCRIPTION "This goal constrains Bias individually for Grand Coulee and Chief Joseph as well as the combined Federal Bias (Grand Coulee Bias plus Chief Joseph Bias, calculated in the FederalBias function) based on the limits specified as inputs. If a scheduled Bias is specified in the Bias Scheduled slot, it is used, otherwise only the limits are set.

    Likewise limits on Accumulated Exchange are applied to Grand Coulee and Chief Joseph individually and to the combined Federal Accumulated Exchange. Inputs in the Accumlated Max/Min slots will override the values in the corresponding Default scalar slot. The Default Min of 0 MWH is only applied to the combined Federal Accumulated Exchange (combined Accumulated Exchange cannot be negative). Individual project Accumulated Exchange is allowed to be negative unless constrained to be non-negative in the Min slot. The Accumulated Exchange Max Default for each project and the combined is 36,921 MWH (the combined maximum energy in storage for all Non-federal resrevoirs).

    More restrictive constraints or target values can be set through the Target Bias Limits, Target Accumulated Exchange Limits goasl.

    The final two constraints limit Bias Ramping. They require the difference in Federal Bias between two successive timesteps as calculated by the FederalBiasRampUp and FederalBiasRampDown functions to be less than or equal to the Bias Ramp Max scalar slot (1800 MW) on the Federal Constraints Data Object. The current value for the Bias Ramp Max is greater than the maximum ramp that would result from the Positive and Negative Bias Limits, so this constraint does not have any effect on the solution.

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Bias Scheduled" ), t ) AND "SlotFromDataObject"( res, "Bias Scheduled" ) [t] != $ "Federal Constraints.Bias NaN" []) THEN\ DESCRIPTION "If Bias has already been scheduled for this hour, use the Bias Scheduled";\ WITH_STATEMENT (NUMERIC biasScheduled = "Max"( "Min"( "SlotFromDataObject"( res, "Bias Scheduled" ) [t], "SlotFromDataObject"( res, "Bias Positive Limit" ) [t] ), "SlotFromDataObject"( res, "Bias Negative Limit" ) [t] ) COMMENTED_BY "Check the scheduled amount against the Positive and Negative Limits") DO\ CONSTRAINT "SlotFromDataObject"( res, "Bias" ) [t] == biasScheduled;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "If Bias has not been scheduled, then just set the limits here. The model will solve for Bias.";\ CONSTRAINT "SlotFromDataObject"( res, "Bias" ) [t] >= "SlotFromDataObject"( res, "Bias Negative Limit" ) [t];\ \ CONSTRAINT "SlotFromDataObject"( res, "Bias" ) [t] <= "SlotFromDataObject"( res, "Bias Positive Limit" ) [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Bias Scheduled", t ) COMMENTED_BY "Currently Federal Bias Scheduled is not used, only Bias Scheduled for the individual projects, but
    this is in place in case in does get used. Typically it will just go to the ELSE condition and set the
    limits." AND $ "Federal Constraints.Bias Scheduled" [t] != $ "Federal Constraints.Bias NaN" []) THEN\ DESCRIPTION "If Bias has already been scheduled for this hour, use the Bias Scheduled";\ WITH_STATEMENT (NUMERIC biasScheduled = "Max"( "Min"( $ "Federal Constraints.Bias Scheduled" [t], $ "Federal Constraints.Bias Positive Limit" [t] ), $ "Federal Constraints.Bias Negative Limit" [t] ) COMMENTED_BY "Check the scheduled amount against the Positive and Negative Limits") DO\ CONSTRAINT "FederalBias"( t ) == biasScheduled;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "If Bias has not been scheduled, then just set the limits here. The model will solve for Bias.";\ CONSTRAINT "FederalBias"( t ) >= $ "Federal Constraints.Bias Negative Limit" [t];\ \ CONSTRAINT "FederalBias"( t ) <= $ "Federal Constraints.Bias Positive Limit" [t];\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Accumulated Exchange Limits";\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Accumulated Exchange Max" ), t )) THEN\ CONSTRAINT "SlotFromDataObject"( res, "Accumulated Exchange" ) [t] <= "SlotFromDataObject"( res, "Accumulated Exchange Max" ) [t];\ \ ELSE\ CONSTRAINT "SlotFromDataObject"( res, "Accumulated Exchange" ) [t] <= "SlotFromDataObject"( res, "Accumulated Exchange Max Default" ) [];\ \ END_IF_STATEMENT;\ \ DESCRIPTION "We don't use the default (0 MWH) for the individual projects, only for the combined. The individual projects can have
    negatvie Accumulated Exchange. It is only the combined Accumulated Exchange that (generally) must always be
    greater than or equal to 0 MWH.";\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Accumulated Exchange Min" ), t )) THEN\ CONSTRAINT "SlotFromDataObject"( res, "Accumulated Exchange" ) [t] >= "SlotFromDataObject"( res, "Accumulated Exchange Min" ) [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Accumulated Exchange Max", t )) THEN\ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] + $ "Chief Joseph Constraints.Accumulated Exchange" [t] <= $ "Federal Constraints.Accumulated Exchange Max" [t];\ \ ELSE\ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] + $ "Chief Joseph Constraints.Accumulated Exchange" [t] <= $ "Federal Constraints.Accumulated Exchange Max Default" [];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Accumulated Exchange Min", t )) THEN\ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] + $ "Chief Joseph Constraints.Accumulated Exchange" [t] >= $ "Federal Constraints.Accumulated Exchange Min" [t];\ \ ELSE\ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] + $ "Chief Joseph Constraints.Accumulated Exchange" [t] >= $ "Federal Constraints.Accumulated Exchange Min Default" [];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ FOREACH (DATETIME t IN @"Start Timestep" + 1.00000000 "hr" TO @"Finish Timestep") DO\ DESCRIPTION "Federal Bias Ramping Limit";\ CONSTRAINT "FederalBiasRampUp"( t ) <= $ "Federal Constraints.Bias Ramp Max" [];\ \ CONSTRAINT "FederalBiasRampDown"( t ) <= $ "Federal Constraints.Bias Ramp Max" [];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Bias Revised Limits";\ DESCRIPTION "This goal constrains the combined Bias (Grand Coulee Bias plus Chief Joseph Bias, calculated in the FederalBias function) to be within the Federal Revised Bias Limits. The Revised Bias Limits are calculated in expression slots during the Pre-optimization Simulation and prevent Bias from increasing peak Federal generation or decreasing the minimum Federal generation for each day.

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Lower and upper bounds on combined Federal Bias";\ CONSTRAINT "FederalBias"( t ) >= $ "Federal Constraints.Bias Negative Limit Revised" [t];\ \ CONSTRAINT "FederalBias"( t ) <= $ "Federal Constraints.Bias Positive Limit Revised" [t];\ \ ENDFOREACH;\ \ CONSTRAINT $ "Federal Constraints.Bias Use Revised Limits" [@"Start Timestep"] == 1.00000000;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Set Bias Use Revised Limits LEAVE ON";\ DESCRIPTION "This goal just sets a user defined variable, Bias Use Revised Limits. It acts as a switch for later policies to know whether to reference the revised limits or the formal limits. If the Bias Limits Revised goal is not active, then this goal will force the Bias Use Revised Limits value to 0 (only use the formal limits). If the Bias Revised Limits goal is active, it has a constraint to force this switch to 1.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ EXPRESSION_OBJECTIVE MINIMIZE $ "Federal Constraints.Bias Use Revised Limits" [@"Start Timestep"];\ \ FREEZE;\ \ END;\ \ RULE "Bias Daily Curvature Limits";\ DESCRIPTION "This goal limits Bias Curvature to prevent unreasonable variability in Bias. Bias Curvature is proportional to the second differential of Bias. Bias Positive Curvature and Bias Negative Curvature are user-defined variables defined in the Smoothing Variables goal. Bias Positive Curvature and Bias Negative Curvature (both non-negative values) are summed over 24 hours, for every midnight to midnight and noon to noon period. The sum must be less than Bias Allowable Curvature for 24 hours, which is calculated in an expression slot during the Pre-optimization Simulation. Using overlapping periods prevents a discontinuity in the constraint, which could allow a large change in Bias at the beginning of each 24-hour period if the overlap were not applied. When the 24 hour period is not fully contained within the run, only the timesteps within the run are used in summing the Curvature (the Allowable Curvature is also adjusted accordingly in the expression slot).

    This goal is not based on formal policy. Rather it is included to produce more reasonable and desirable outputs.";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO @"Finish Timestep" ) SET_UNION "Noon"( @"Start Timestep" TO @"Finish Timestep" )) DO\ IF_STATEMENT (day >= @"Start Timestep + 2") THEN\ DESCRIPTION "For each noon and midnight, sum Bias Curvature for the previous 24 hours and limit that sum.
    If the noon or midnight timestep (day) is within the first 24 hours of the run, it will sum from
    Start Timestep + 2, which is the first timestep at which Bias Curvature is calculated.";\ CONSTRAINT FOR ( DATETIME timestep IN "DateMax"( day - 23.00000000 "hr", @"Start Timestep + 2" ) TO day ) STAT_SUM\ $ "Federal Constraints.Bias Positive Curvature" [timestep] + $ "Federal Constraints.Bias Negative Curvature" [timestep]\ ENDFOR <= $ "Federal Constraints.Bias Allowable Curvature" [day];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "This form is used for the last day of the run when part of the 24 hour period extends past
    the end of the run.";\ CONSTRAINT FOR ( DATETIME timestep IN "PreviousDate"( @"Finish Timestep", @"1:00:00" ) TO @"Finish Timestep" ) STAT_SUM\ $ "Federal Constraints.Bias Positive Curvature" [timestep] + $ "Federal Constraints.Bias Negative Curvature" [timestep]\ ENDFOR <= $ "Federal Constraints.Bias Allowable Curvature" [@"Finish Timestep"];\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Fish Spill";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Fish Spill and Bypass";\ DESCRIPTION "The constraints in this goal model all Fish Spill, Fish Bypass and Fish Ladder policy. Fish Spill flows are modeled by the Reservoir.Regulated Spill slot. Fish Bypass and Fish Ladder flows (Rocky Reach and Rock Island only) are combined and modeled by the Reservoir.Bypass slot.

    For actual operations, the Special Operations Min Spill slot will typically be used to implement Fish Spill requirements. Values set in the Special Operations Min Spill slot will override all other Spill requirements for a given reservoir. For cases when values are not entered in the Special Operations Min Spill slot (such as for a planning study) the following forms of the constraints will be used;

    Wells Fish Spill:
    The first set of constraints is for Wells Fish Spill. The actual Fish Spill through Wells depends on which units are running. This can either be approximated with a percentage of total Outflow or Fish Spill can be set manually for each timestep. The IsActiveSeason function determines if it is the Wells Summer Fish Spill season. If the run period is not in this season, the the Wells constraints will be ignored. It then checks the Wells Constraints.Summer Fish Spill Manual series slot. For any timesteps that have a value in this slot the Regulated Spill will be required to be greater than or equal to this flow value. For any timesteps without a flow value on this slot, the Summer Fish Spill Percent Manual slot will be checked. If it contains a value, Regulated Spill will be required to be greater than or equal to this percentage of Wells.Outflow at every timestep. If there is no value in the Percent Manual slot the Summer Fish Spill Percent Default slot (8%) will be used. Wells Fish Spill constraints are based on an email from Arlen Simon, Douglas County PUD via Joe Taylor, March 9, 2011, and the 8% default value is based on the document Mid-Columbia Projects - List of Operating Constraints as provided to CADSWES by Joe Taylor, October 13, 2011.

    Rocky Reach Fish Spill:
    Rocky Reach has separate constraints for Spring and Summer Fish Spill allowing separate daily fish spill amounts to be set for the two seasons. The spill requirement is a percent of total daily outflow, so the constraint is evaluated only for the midnight timestep of each day during the Fish Spill Season. The IsActiveSeasonEndOfDay function determines if it is midnight in the Fish Spill season. The total Rocky Reach Regulated Spill for the day as calculated by the DailyTotalFlow function is required to be greater than or equal to the value of the DailyFishSpill function. This function calculates a percentage of total daily Outflow using the Rocky Reach Constraints.Spring/Summer Fish Spill Percent Manual scalar slot if it has a value or the Rocky Reach Constraints.Spring/Summer Fish Spill Percent Default if there is no value in the Manual slot.

    Rock Island Fish Spill
    The Rock Island Fish Spill constraints operate the same as the Rocky Reach Fish Spill constraints using the corresponding Rock Island slots.

    Rocky Reach and Rock Island Fish Ladder and Bypass
    Fish Ladder and Fish Bypass flows are combined in the Reservoir.Bypass slot. The Bypass slot for both reservoirs is constrained in this set of constraints to equal the value on the Reservoir Constraints.Fish Ladder slot or Fish Ladder plus Fish Bypass if there is a value on both slots. For any timestep without a value on the Fish Ladder slot (displays NaN) the Bypass for the reservoir is constrained to be 0 kcfs to prevent the optimization from 'cheating' by sending excess spill through the bypass. NOTE: There is no separate Default slot for Fish Ladder or Fish Bypass. The appropriate flow values must be entered on these slots for the constraint to operate.

    All Rocky Reach and Rock Island Fish Spill, Fish Bypass and Fish Ladder constraints are based on the spreadsheets Data for ORNL Model 2-14-2011.xlsx and RR&RI_Historic_Fish_Spill_1995_to_2010.xlsx provided to CADSWES by Chelan County PUD.

    Wanapum and Priest Rapids Fish Spill:
    Wanapum and Priest Rapids have separate constraints for Summer and Fall Fish Spill allowing separate Fish Spill amounts to be set for the two seasons. The IsActiveSeason function determines if it is the Summer/Fall Fish Spill season. If the run period is not in this season, the constraints will be ignored. The Fish Spill constraints require the Reservoir Regulated Spill to be greater than or equal to the flow value from the Summer/Fall Fish Spill Manual slot at all timesteps during the Fish Spill season. If there is no value in the Manual slot, the Default slot will be used. All Wanapum and Priest Rapids Fish Spill constraints are based on the spreadsheet MID-C Operations Annual Timeline 2010-2011.xlsx provided to CADSWES by Grant County PUD. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT (( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), t ) AND "SlotValueFromDataObject"( res, "Fish Spill Manual", t ) > 0.00000000 "kcfs" ) COMMENTED_BY "Fish Spill gets imported to the Fish Spill Manual slot, but sometimes it stops before the end of the
    run, setting zeroes for remaining time steps, because Central does not receive a Fish Spill signal
    from the PUD for those hours. In these cases the goal switches to using the default. The default
    is set by an initialization rule.") THEN\ CONSTRAINT res & "Regulated Spill" [t] >= "SlotValueFromDataObject"( res, "Fish Spill Manual", t );\ \ ELSE\ CONSTRAINT res & "Regulated Spill" [t] >= "SlotFromDataObject"( res, "Fish Spill Default" ) [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ DESCRIPTION "Rocky Reach and Rock Island Fish Ladder and Fish Bypass. This only gets added if there inputs in
    the slots.";\ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC fishBypass = IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Ladder" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Fish Ladder" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Bypass" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Fish Bypass" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ CONSTRAINT res & "Bypass" [t] == fishBypass;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Nonfederal Special Operations";\ DESCRIPTION "The Special Operations goals allow any necessary additional constraints to be set on individual projects, such as for maintenance. All of these constraints are activated only for timesteps when values are present in the corresponding Special Operations slot. The constraints have been divided into three separate goals corresponding to what variables are being constrained: Pool Elevations, Outflows, Generation. The Outflows goal contains constraints on total Outflow, Turbine Release, Spill and Tailwater Elevation. Note that certain Special Operations slots are also referenced in other goals as well. ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Nonfederal Special Operations Min Pool Elevation";\ DESCRIPTION "This goal allows for additional constraints to be set on Pool Elevation for all seven reservoirs for any purpose. Appropriate Elevation Margins for uncertainty are incorporated into the constraints. The Margins are specified differently for the Federal and Non-federal reservoirs, which is the reason for the two differenct forms of the constraints. These constraints will only be active when there is a value in the corresponding Special Operations Min/Max Pool Elevation slot, and that value is more restrictive than the standard License Min/Max Pool Elevation.

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Pool Elevation" ), t )) THEN\ CONSTRAINT res & "Pool Elevation" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Pool Elevation", t ) + "SlotValueFromDataObject"( res, "Pool Elevation Min Margin", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Min Outflow";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Outflow" ), t )) THEN\ CONSTRAINT res & "Outflow" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Outflow", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Min Spill";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t )) THEN\ CONSTRAINT res & "Spill" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Spill", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Min Turbine Release";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Turbine Release" ), t )) THEN\ CONSTRAINT res & "Turbine Release" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Turbine Release", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Min Generation";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), t )) THEN\ CONSTRAINT res & "Power" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Generation", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Min Tailwater Elev";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Tailwater Elev" ), t )) THEN\ CONSTRAINT res & "Tailwater Elevation" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Tailwater Elev", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "For Priest Rapids, we convert the Tailwater Constraint to a constraint on Outflow. The Priest
    Rapids Tailwater is a function of Outflow only, so this way we can remove all approximation error
    from linearization from the constraint.";\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Tailwater Elev" ), t )) THEN\ WITH_STATEMENT (NUMERIC twVal = "SlotValueFromDataObject"( res, "Special Operations Min Tailwater Elev", t )) DO\ WITH_STATEMENT (NUMERIC minOutflow = IF ( ( twVal >= res & "Tailwater Table" [0.00000000, 1.00000000] ) COMMENTED_BY "Make sure it is not below the lowest value in the table" )\ THEN\ "TableInterpolation"( res & "Tailwater Table", 1.00000000, 0.00000000, twVal, t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ CONSTRAINT res & "Outflow" [t] >= minOutflow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Max Pool Elevation";\ DESCRIPTION "This goal allows for additional constraints to be set on Pool Elevation for all seven reservoirs for any purpose. Appropriate Elevation Margins for uncertainty are incorporated into the constraints. The Margins are specified differently for the Federal and Non-federal reservoirs, which is the reason for the two differenct forms of the constraints. These constraints will only be active when there is a value in the corresponding Special Operations Min/Max Pool Elevation slot, and that value is more restrictive than the standard License Min/Max Pool Elevation.

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ), t )) THEN\ CONSTRAINT res & "Pool Elevation" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Pool Elevation", t ) - "SlotValueFromDataObject"( res, "Pool Elevation Max Margin", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Max Outflow";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Outflow" ), t )) THEN\ CONSTRAINT res & "Outflow" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Outflow", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Max Turbine Release";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Turbine Release" ), t )) THEN\ CONSTRAINT res & "Turbine Release" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Turbine Release", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Max Spill";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Spill" ), t )) THEN\ CONSTRAINT res & "Spill" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Spill", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Max Generation";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (OBJECT downstreamRes = "DownstreamRes"( res )) DO\ WITH_STATEMENT (LIST days = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" AND t > @"Start Timestep" + 12.00000000 "hr" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR SET_UNION { @"Finish Timestep" }) DO\ WITH_STATEMENT (LIST dayIndices = "GetNumbers"( 0.00000000, ( LENGTH days ) - 1.00000000, 1.00000000 )) DO\ FOREACH (NUMERIC i IN dayIndices) DO\ WITH_STATEMENT (DATETIME end = GET @INDEX i FROM days) DO\ WITH_STATEMENT (DATETIME start = IF ( i == 0.00000000 )\ THEN\ @"Start Timestep"\ ELSE\ "PreviousDate"( end, @"1:00:00" )\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minOutVol = "QOMinVolumeEstimateInitial"( res, start, end )) DO\ WITH_STATEMENT (NUMERIC OHAvg = "OHAVgEstimateInitial"( res, minOutVol, start, end )) DO\ WITH_STATEMENT (NUMERIC maxQTVol = "QTMaxVolumeEstimateGivenOHAvg"( res, OHAvg, start, end )) DO\ WITH_STATEMENT (NUMERIC fishSpillVol = "SumFlowsToVolume"( "SlotFromDataObject"( res, "Spill Required" ), start, end ) COMMENTED_BY "Required Fish Spill") DO\ WITH_STATEMENT (NUMERIC minQSVol = "MaxItem"( { fishSpillVol , minOutVol - maxQTVol } )) DO\ WITH_STATEMENT (BOOLEAN highFlow = minQSVol > fishSpillVol) DO\ FOREACH (DATETIME t IN start TO end) DO\ DESCRIPTION "We convert the max gen constraint into a max QT constraint to help prevent violations due to
    approximation error from linearizing Power.";\ WITH_STATEMENT (NUMERIC QOest = IF ( highFlow )\ THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] COMMENTED_BY "We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ELSE\ "MinItem"( { "SlotFromDataObject"( res, "Outflow Estimate" ) [t] , IF ( "SlotFromDataObject"( res, "HK Estimate" ) [t] > 0.00000000 "MW/kcfs" )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t] + "SlotFromDataObject"( res, "Spill Required" ) [t]\ ELSE\ 30000.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF } ) COMMENTED_BY "We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ENDIF) DO\ WITH_STATEMENT (NUMERIC PEest = IF ( highFlow )\ THEN\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t]\ ELSE\ ( ( "SlotFromDataObject"( res, "Pool Elevation Estimate" ) [t - 1.00000000 "hr"] + "SlotFromDataObject"( res, "Pool Elevation Estimate" ) [t] ) / 2.00000000 ) COMMENTED_BY "The Operating Head calculation uses the average from the end of the previous timestep and end
    of the current timestep.
    We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ENDIF) DO\ WITH_STATEMENT (NUMERIC TWBaseValEst = IF ( res == % "Priest Rapids" )\ THEN\ 0.00000000 "ft" COMMENTED_BY "Priest Rapids Tailwater is not dependent on a downstream elevation."\ ELSE\ ( ( "SlotFromDataObject"( downstreamRes, "Pool Elevation Estimate" ) [t - 1.00000000 "hr"] + "SlotFromDataObject"( downstreamRes, "Pool Elevation Estimate" ) [t] ) / 2.00000000 ) COMMENTED_BY "The Tailwater calculation uses the average base value from the end of the previous timestep and
    end of the current timestep.
    We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ENDIF COMMENTED_BY "We might want to refine this later.") DO\ WITH_STATEMENT (NUMERIC TWest = IF ( res == % "Rocky Reach" OR res == % "Priest Rapids" )\ THEN\ ( TWBaseValEst + "TableInterpolation"( res & "Tailwater Table", 0.00000000, 1.00000000, QOest, t ) ) COMMENTED_BY "These projects use the Base Value Plus Lookup Table method."\ ELSE\ "TableInterpolation3D"( res & "Stage Flow Tailwater Table", 0.00000000, QOest, 1.00000000, TWBaseValEst, 2.00000000, t ) COMMENTED_BY "The other projects use the Stage Flow Lookup Table method."\ ENDIF) DO\ WITH_STATEMENT (NUMERIC OHest = PEest - TWest) DO\ WITH_STATEMENT (NUMERIC maxGen = "MinItem"( { "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] , WITH NUMERIC maxQT = "TableInterpolation"( res & "Auto Max Turbine Q", 0.00000000, 1.00000000, OHest, t ) DO\ "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, OHest, 1.00000000, maxQT, 2.00000000, t )\ ENDWITH } )) DO\ WITH_STATEMENT (NUMERIC maxQTInit = "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, OHest, 2.00000000, maxGen, 1.00000000, t ) COMMENTED_BY "Calculate the max Turbine Release given the max gen and the initial Opearting Head estimate") DO\ CONSTRAINT res & "Turbine Release" [t] <= maxQTInit;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfederal Special Operations Max Tailwater Elev";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Tailwater Elev" ), t )) THEN\ CONSTRAINT res & "Tailwater Elevation" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Tailwater Elev", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "For Priest Rapids, we convert the Tailwater Constraint to a constraint on Outflow. The Priest
    Rapids Tailwater is a function of Outflow only, so this way we can remove all approximation error
    from linearization from the constraint.";\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Tailwater Elev" ), t )) THEN\ WITH_STATEMENT (NUMERIC twVal = "SlotValueFromDataObject"( res, "Special Operations Max Tailwater Elev", t )) DO\ WITH_STATEMENT (NUMERIC maxOutflow = WITH NUMERIC numRows = "NumRows"( res & "Tailwater Table" ) DO\ IF ( twVal <= res & "Tailwater Table" [numRows - 1.00000000, 1.00000000] )\ THEN\ "TableInterpolation"( res & "Tailwater Table", 1.00000000, 0.00000000, twVal, t )\ ELSE\ res & "Tailwater Table" [numRows - 1.00000000, 0.00000000]\ ENDIF\ ENDWITH COMMENTED_BY "Make sure it is not above the highest value in the table") DO\ CONSTRAINT res & "Outflow" [t] <= maxOutflow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Protection Level Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Vernita Bar Protection Level Flows";\ DESCRIPTION "Maximum of 8 Consecutive Hours Below PLF During Pre-Hatch Period:
    The fist constraint in this goal corresponds to the policy limiting the number of consecutive hours of Vernita Bar flow (USGS 12472800) below Protection Level Flow to eight. This actual policy is approximated by constraining sum of Priest Rapids Outflow over every nine hour period to be greater than or equal to the value on the Vernita Bar Constraints.8 Hour Dry Cumulative Min expression slot. This slot represents the sum of eight hours at the Vernita Bar minimum flow (36 ckfs) plus one hour at Protection Level Flow plus a Safety Factor if one is entered manually. The PreHatchPeriod function creates a list of timesteps for which this function is active. If the run period is not within the Pre-Hatch Period, this constraint will be ignored. NOTE: The actual policy allows for 12 consecutive hours at low flow on the weekends. A distinction is not made in this constraint for weekends based on discussions with representatives from Central stating that in practice the eight hour limit is typically used on weekends as well. It could be possible to meet the cumulative 9 hour flow requirement yet still have 9 or more consecutive hours below PLF, this can be prevented by increasing the Safety Factor. There is also an expression slot, Vernita Bar Constraints.8 Hour Dry Check, which evaluates at the end of the Post-optimization Simulation to indicate if the actual policy criteria were met. Any timestep when the 8 consecutive hours below PLF limit is exceeded in the Simulation will display a value of 9999.999 in this slot. All timesteps when the actual policy is not violated in the Simulation will display 0. This constraint is based on the Hanford Reach Agreement C.2: Pre-Hatch Period.

    Protection Level Flows
    The second constraint in this goal requires Priest Rapids Outflow to be greater than or equal to Verntia Bar Constraints.Protection Level Flow expression slot for all timesteps in the Post-Hatch and Emergence Periods. The list of timesteps for which this constraint is active is created by the PostHatchPeriod and the EmergenecePeriod functions. If the run period is not within one of these periods, the constraint will be ignored. This constraint is based on the Hanford Reach Agreement C.3-4.

    The formal policy in the Hanford Reach Agreement is based on flows at Vernita Bar (USGS 12472800). These constraints were modified by CADSWES (10/8/2013) after conversations with Joe Taylor to apply to Priest Rapids Outflow rather than Vernita Bar Outflow to better reflect actual operations and to prevent oscillatory effects in the Priest Rapids Outflow that could result from the autoregressive lagged routing method used for the Vernita Bar reach object.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "Maximum of 8 Consecutive Hours Below the PLF During PreHatch Period";\ FOREACH (DATETIME timestep IN "PreHatchPeriod"( )) DO\ CONSTRAINT FOR ( DATETIME hour IN "Previous8HourWindow"( timestep ) ) STAT_SUM\ $ "Priest Rapids.Outflow" [hour] * 1.00000000 "hr"\ ENDFOR >= $ "Vernita Bar Constraints.8 Hour Dry Cumulative Min" [timestep];\ \ ENDFOREACH;\ \ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Post-Hatch and Emergence Periods - Meet Protection Level Flows.
    PLF for the different seasons is set based on the season on the
    Vernita Bar Constraints.Protection Level Flow expression slot.";\ IF_STATEMENT ("IsPostHatchPeriod"( timestep ) OR "IsEmergencePeriod"( timestep )) THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [timestep] >= $ "Vernita Bar Constraints.Protection Level Flow" [timestep];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Priest Rapids Flow Bands";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Priest Rapids Flow Bands";\ DESCRIPTION "This goal constrains Priest Rapids Constraints.Daily Low Flow and Priest Rapids Constraints.Daily High Flow (User-defined Variables) during the Rearing Period. The purpose is to limit the daily flow fluctuations in accordance with the Hanford Reach Agreement C.5. This goal first creates a list of midnight timesteps for which the goal is active (during the Rearing Period) using the RearingPeriod function. If the run period is not during the Rearing Period, this goal is ignored. If the Estimated Average Flow for determining the appropriate flow band for a given day is greater than 170 kcfs Priest Rapids Constraints.Daily Low Flow must be greater than or equal to the value of the PRDHighFlowBandMinimum function (150 kcfs). If the Estimated Flow does not exceed 170 kcfs, then the constraint requires the difference between the Daily High Flow and Daily Low Flow, as calculated by the PRDDailyOutflowDelta function, to be less than or equal to the allowable difference contained in the Priest Rapids Constraints.Flow Bands slot.

    The set of constraints in the second IF statement operates the same as the first part of the goal but is in place so that flows will be constrained appropriately for the final day of the run when the run does not end at midnight (final day of the run is not a complete 24 hours). The initial part of the goal looks back from each midnight over the previous day. This portion looks back from the final timestep to the previous midnight.

    The allowable flow bands are determined at the beginning of the run and set on the Priest Rapids Constraints.Flow Bands expression slot. The EstimatedAverageFlow function calculates the flow value to use in determining the allowable flow band based on the Hanford Reach Agreement C.5.(b)(1-5) with the exception that Rock Island.Outflow is used in place of Wanapum.Inflow, and this value is only used for the estimate for the first day of the run. For all other days the Chief Joseph forecasted outflow for the next 24 hours (or next 48 hours for the weekend) plus the average of side inflows for the past 24 hours is used. This is based on conversations with representatives from Central during meetings at CADSWES, March 8-9, 2011.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "Flow Bands";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsActiveSeasonFromDates"( "Rearing Period", t )) THEN\ DESCRIPTION "If flow band estimated flow is greater than 170 kcfs sets PRD minimum outflow to 150 kcfs";\ IF_STATEMENT ($ "Priest Rapids Constraints.Flow Band Estimated Average Flow" [t] >= $ "Priest Rapids Constraints.Flow Band Ranges" [3.00000000, 0.00000000] COMMENTED_BY "This holds the threshold for setting the PRD min flow (currently 170 kcfs).") THEN\ WITH_STATEMENT (NUMERIC minFlow = "Max"( $ "Priest Rapids Constraints.Flow Band Ranges" [4.00000000, 1.00000000] COMMENTED_BY "This holds the default min flow value for the case that the estimated flow is above 170 kcfs
    (current value is 150 kcfs).", IF ( "IsInput"( $ "Priest Rapids Constraints.Daily Low Flow Import", t ) )\ THEN\ $ "Priest Rapids Constraints.Daily Low Flow Import" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF COMMENTED_BY "If the import value is more restrictive, then use it" )) DO\ CONSTRAINT $ "Priest Rapids Constraints.Daily Low Flow" [t] >= minFlow;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Standard Flow Band constraint";\ CONSTRAINT $ "Priest Rapids Constraints.Daily High Flow" [t] - $ "Priest Rapids Constraints.Daily Low Flow" [t] <= $ "Priest Rapids Constraints.Flow Bands" [t];\ \ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Daily Low Flow Import", t ) AND $ "Priest Rapids Constraints.Daily Low Flow Import" [t] > 0.00000000 "kcfs") THEN\ CONSTRAINT $ "Priest Rapids Constraints.Daily Low Flow" [t] >= $ "Priest Rapids Constraints.Daily Low Flow Import" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Daily High Flow Import", t ) AND $ "Priest Rapids Constraints.Daily High Flow Import" [t] > 0.00000000 "kcfs") THEN\ CONSTRAINT $ "Priest Rapids Constraints.Daily High Flow" [t] <= $ "Priest Rapids Constraints.Daily High Flow Import" [t];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Priest Rapids Daily Low and High Flow Target";\ DESCRIPTION "These constraints allow operators to specify more restrictive flow limits on Priest Rapids for the first part of the day during Stranding Band operations (Rearing Period). If a Daily Low Flow Import Target value is specified, this constraint will require all PRD Outflow values from the start of the day until that hour to be >= the target, and similiar for the Daily High Flow Import Target. If no target values are entered, the constraints are ignored.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "Flow Band Targets";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsActiveSeasonFromDates"( "Rearing Period", t )) THEN\ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Daily Low Flow Import Target", t ) AND $ "Priest Rapids Constraints.Daily Low Flow Import Target" [t] > 0.00000000 "kcfs" COMMENTED_BY "Pseudo-NaN") THEN\ CONSTRAINT $ "Priest Rapids Constraints.Daily Low Flow" [t] >= $ "Priest Rapids Constraints.Daily Low Flow Import Target" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Daily High Flow Import Target", t ) AND $ "Priest Rapids Constraints.Daily High Flow Import Target" [t] > 0.00000000 "kcfs" COMMENTED_BY "Pseudo-NaN") THEN\ CONSTRAINT $ "Priest Rapids Constraints.Daily High Flow" [t] <= $ "Priest Rapids Constraints.Daily High Flow Import Target" [t];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "CJAD II Weekend Min Flows";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "CJAD II Weekend Min Flows";\ DESCRIPTION "This goal sets the minimum Priest Rapids Outflow for four consecutive weekends beginning after 800 TUs have accumulated after the Spawning Period (the same as the CJAD II Period) in accordance with Hanford Reach Agreement C.5.(b)(6). It does this by constraining the Priest Rapids Constraints.Daily Low Flow for those days to be greater than or equal to the average daily minimum Priest Rapids Outflow from the previous Monday through Thursday.

    The CJADIIPeriod function creates a list of timesteps at midnight in the CJAD II Period. The goal then checks if each timestep from the CJADIIPeriod list is a Saturday or Sunday. The constraint is only in effect for these days. The minimum flow for the weekend is based on the average daily minimum from the previous Monday through Thursday. For any of the days in this Monday through Thursday period with a portion of the day within the run period, the Daily Low Flow User-defined variable is used in calculating the average. For each of these days that are entirely before the start of the run period the minimum value of Priest Rapids.Outflow (an input for the run for timesteps before the run period) for that day is used. For each Saturday and Sunday, the constraint checks how far back the first timestep in the run is and determines which AvgPRDMinFlowMonToThurs function to call based on where the first timestep falls in regards to the Monday to Thursday Period. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "Minimum Weekend Flows During CJAD II Period";\ WITH_STATEMENT (LIST dayList = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" OR t == @"Finish Timestep" AND ( t == @"Saturday" OR t == @"Sunday" ) AND "IsCJADIIPeriod"( t ) )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR COMMENTED_BY "Is this a Saturday or Sunday in the CJAD II Period? We only apply the constraints if these days
    were within the run.
    ") DO\ IF_STATEMENT (( dayList != { } ) COMMENTED_BY "Do we have any Saturday or Sunday timesteps within CJADII in this run?
    ") THEN\ FOREACH (DATETIME day IN dayList) DO\ CONSTRAINT $ "Priest Rapids Constraints.Daily Low Flow" [day] >= ( $ "Priest Rapids Constraints.Daily Low Flow" ["PreviousDate"( day, @"24:00:00 Monday" )] + $ "Priest Rapids Constraints.Daily Low Flow" ["PreviousDate"( day, @"24:00:00 Tuesday" )] + $ "Priest Rapids Constraints.Daily Low Flow" ["PreviousDate"( day, @"24:00:00 Wednesday" )] + $ "Priest Rapids Constraints.Daily Low Flow" ["PreviousDate"( day, @"24:00:00 Thursday" )] ) / 4.00000000;\ \ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Daily Low Flow Import", day ) AND $ "Priest Rapids Constraints.Daily Low Flow Import" [day] > 0.00000000 "kcfs") THEN\ CONSTRAINT $ "Priest Rapids Constraints.Daily Low Flow" [day] >= $ "Priest Rapids Constraints.Daily Low Flow Import" [day];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Spawning Period Reverse Load Factoring";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Spawning Period Flows All Days";\ DESCRIPTION "This goal constrains Vernita Bar.Outflow (USGS 12472800) during daylight in the Spawning Period to always be between 55 and 70 kcfs (Reverse Load Factoring) in accordance with the Hanford Reach Agreement C.1.(c). The SpawningPeriodDaylightHours function creates a list of timesteps for which the constraints are active. This function references the Spawning Period slots and the Sunrise and Sunset slots on the Dates Data Object. If it is not Spawning Period or if it is not a timestep between sunrise and sunset for that day, the constraints will be ignored. For the first daylight hour, the flow constraint is actually on Vernita Bar Outflow. This accounts for the lag effect that tends to drive a lower Priest Rapids release in the hour before the daylight flow constraint at Verniat Bar is in effect. For the remaining daylight hours, the constraint is on Priest Rapids Outflow to prevent an oscillatory pattern in the Priest Rapids Outflow due to the autoregressive lagged routing method used on the Vernita Bar reach object. The first constraint in each set requires the flow to be less than or equal to the RLF Daylight Max Flow Default scalar slot (70 kcfs). The second requires flow to be greater than or equal to the RLF Daylight Min Flow Default scalar slot (55 kcfs).

    Spawning Period flows can be restricted further by the Spawning Period Target Flow goal. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "For this high priority RLF daylight flow constraint, the solution will spill, if necessary, to stay within
    the Daylight Max Flow (spill overnight to draft to make sufficient space during the day).";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( @"Start Timestep", @"Finish Timestep" )) DO\ WITH_STATEMENT (NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ IF_STATEMENT (NOT "IsDaylightHour"( t )) THEN\ DESCRIPTION "For the first hour, the flow constraint is on Vernita Bar Outflow. The Routing method for the
    Vernita Bar reach object uses an Autoregressive Outflow Adjustment. The modeled flow at
    Vernita Bar is a function of the lagged Outflow from Priest Rapids and the Vernita Bar flow on the
    previous timestep. This Autogressive Outflow Adjustment allows the flow at Vernita Bar to
    account for both the lag time from Priest Rapids and the Bank Storage effect, and it tends to
    drive a lower Priest Rapids discharge on the hours before daylight (lower than the daylight min
    flow) in order to meet the daylight min at Vernita Bar on the first daylight hour. The parameters
    for the Autoregressive Outflow Adjustment are based on a statistical analysis (by CADSWES) of
    the relationship between Priest Rapids and Vernita Bar flows during Reverse Load Factoring.";\ CONSTRAINT $ "Vernita Bar.Outflow" [t] <= maxFlow;\ \ CONSTRAINT $ "Vernita Bar.Outflow" [t] >= minFlow;\ \ ELSE\ DESCRIPTION "For the remaining daylight hours, the constraint is on PRD Outflow
    to prevent an oscillatory pattern in the PRD Outflow due to the lag effect.";\ CONSTRAINT $ "Priest Rapids.Outflow" [t] >= minFlow;\ \ END_IF_STATEMENT;\ \ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= maxFlow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Flows Day 1";\ DESCRIPTION "This goal constrains Vernita Bar.Outflow (USGS 12472800) during daylight in the Spawning Period to always be between 55 and 70 kcfs (Reverse Load Factoring) in accordance with the Hanford Reach Agreement C.1.(c). The SpawningPeriodDaylightHours function creates a list of timesteps for which the constraints are active. This function references the Spawning Period slots and the Sunrise and Sunset slots on the Dates Data Object. If it is not Spawning Period or if it is not a timestep between sunrise and sunset for that day, the constraints will be ignored. For the first daylight hour, the flow constraint is actually on Vernita Bar Outflow. This accounts for the lag effect that tends to drive a lower Priest Rapids release in the hour before the daylight flow constraint at Verniat Bar is in effect. For the remaining daylight hours, the constraint is on Priest Rapids Outflow to prevent an oscillatory pattern in the Priest Rapids Outflow due to the autoregressive lagged routing method used on the Vernita Bar reach object. The first constraint in each set requires the flow to be less than or equal to the RLF Daylight Max Flow Default scalar slot (70 kcfs). The second requires flow to be greater than or equal to the RLF Daylight Min Flow Default scalar slot (55 kcfs).

    Spawning Period flows can be restricted further by the Spawning Period Target Flow goal. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (DATETIME dayStart = @"Start Timestep") DO\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "For this high priority RLF daylight flow constraint, the solution will spill, if necessary, to stay within
    the Daylight Max Flow (spill overnight to draft to make sufficient space during the day).";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ IF_STATEMENT (NOT "IsDaylightHour"( t )) THEN\ DESCRIPTION "For the first hour, the flow constraint is on Vernita Bar Outflow. The Routing method for the
    Vernita Bar reach object uses an Autoregressive Outflow Adjustment. The modeled flow at
    Vernita Bar is a function of the lagged Outflow from Priest Rapids and the Vernita Bar flow on the
    previous timestep. This Autogressive Outflow Adjustment allows the flow at Vernita Bar to
    account for both the lag time from Priest Rapids and the Bank Storage effect, and it tends to
    drive a lower Priest Rapids discharge on the hours before daylight (lower than the daylight min
    flow) in order to meet the daylight min at Vernita Bar on the first daylight hour. The parameters
    for the Autoregressive Outflow Adjustment are based on a statistical analysis (by CADSWES) of
    the relationship between Priest Rapids and Vernita Bar flows during Reverse Load Factoring.";\ CONSTRAINT $ "Vernita Bar.Outflow" [t] <= maxFlow;\ \ CONSTRAINT $ "Vernita Bar.Outflow" [t] >= minFlow;\ \ ELSE\ DESCRIPTION "For the remaining daylight hours, the constraint is on PRD Outflow
    to prevent an oscillatory pattern in the PRD Outflow due to the lag effect.";\ CONSTRAINT $ "Priest Rapids.Outflow" [t] >= minFlow;\ \ END_IF_STATEMENT;\ \ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= maxFlow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Flows Day 2";\ DESCRIPTION "This goal constrains Vernita Bar.Outflow (USGS 12472800) during daylight in the Spawning Period to always be between 55 and 70 kcfs (Reverse Load Factoring) in accordance with the Hanford Reach Agreement C.1.(c). The SpawningPeriodDaylightHours function creates a list of timesteps for which the constraints are active. This function references the Spawning Period slots and the Sunrise and Sunset slots on the Dates Data Object. If it is not Spawning Period or if it is not a timestep between sunrise and sunset for that day, the constraints will be ignored. For the first daylight hour, the flow constraint is actually on Vernita Bar Outflow. This accounts for the lag effect that tends to drive a lower Priest Rapids release in the hour before the daylight flow constraint at Verniat Bar is in effect. For the remaining daylight hours, the constraint is on Priest Rapids Outflow to prevent an oscillatory pattern in the Priest Rapids Outflow due to the autoregressive lagged routing method used on the Vernita Bar reach object. The first constraint in each set requires the flow to be less than or equal to the RLF Daylight Max Flow Default scalar slot (70 kcfs). The second requires flow to be greater than or equal to the RLF Daylight Min Flow Default scalar slot (55 kcfs).

    Spawning Period flows can be restricted further by the Spawning Period Target Flow goal. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 2.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "For this high priority RLF daylight flow constraint, the solution will spill, if necessary, to stay within
    the Daylight Max Flow (spill overnight to draft to make sufficient space during the day).";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ IF_STATEMENT (NOT "IsDaylightHour"( t )) THEN\ DESCRIPTION "For the first hour, the flow constraint is on Vernita Bar Outflow. The Routing method for the
    Vernita Bar reach object uses an Autoregressive Outflow Adjustment. The modeled flow at
    Vernita Bar is a function of the lagged Outflow from Priest Rapids and the Vernita Bar flow on the
    previous timestep. This Autogressive Outflow Adjustment allows the flow at Vernita Bar to
    account for both the lag time from Priest Rapids and the Bank Storage effect, and it tends to
    drive a lower Priest Rapids discharge on the hours before daylight (lower than the daylight min
    flow) in order to meet the daylight min at Vernita Bar on the first daylight hour. The parameters
    for the Autoregressive Outflow Adjustment are based on a statistical analysis (by CADSWES) of
    the relationship between Priest Rapids and Vernita Bar flows during Reverse Load Factoring.";\ CONSTRAINT $ "Vernita Bar.Outflow" [t] <= maxFlow;\ \ CONSTRAINT $ "Vernita Bar.Outflow" [t] >= minFlow;\ \ ELSE\ DESCRIPTION "For the remaining daylight hours, the constraint is on PRD Outflow
    to prevent an oscillatory pattern in the PRD Outflow due to the lag effect.";\ CONSTRAINT $ "Priest Rapids.Outflow" [t] >= minFlow;\ \ END_IF_STATEMENT;\ \ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= maxFlow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Flows Day 3";\ DESCRIPTION "This goal constrains Vernita Bar.Outflow (USGS 12472800) during daylight in the Spawning Period to always be between 55 and 70 kcfs (Reverse Load Factoring) in accordance with the Hanford Reach Agreement C.1.(c). The SpawningPeriodDaylightHours function creates a list of timesteps for which the constraints are active. This function references the Spawning Period slots and the Sunrise and Sunset slots on the Dates Data Object. If it is not Spawning Period or if it is not a timestep between sunrise and sunset for that day, the constraints will be ignored. For the first daylight hour, the flow constraint is actually on Vernita Bar Outflow. This accounts for the lag effect that tends to drive a lower Priest Rapids release in the hour before the daylight flow constraint at Verniat Bar is in effect. For the remaining daylight hours, the constraint is on Priest Rapids Outflow to prevent an oscillatory pattern in the Priest Rapids Outflow due to the autoregressive lagged routing method used on the Vernita Bar reach object. The first constraint in each set requires the flow to be less than or equal to the RLF Daylight Max Flow Default scalar slot (70 kcfs). The second requires flow to be greater than or equal to the RLF Daylight Min Flow Default scalar slot (55 kcfs).

    Spawning Period flows can be restricted further by the Spawning Period Target Flow goal. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 3.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "For this high priority RLF daylight flow constraint, the solution will spill, if necessary, to stay within
    the Daylight Max Flow (spill overnight to draft to make sufficient space during the day).";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ IF_STATEMENT (NOT "IsDaylightHour"( t )) THEN\ DESCRIPTION "For the first hour, the flow constraint is on Vernita Bar Outflow. The Routing method for the
    Vernita Bar reach object uses an Autoregressive Outflow Adjustment. The modeled flow at
    Vernita Bar is a function of the lagged Outflow from Priest Rapids and the Vernita Bar flow on the
    previous timestep. This Autogressive Outflow Adjustment allows the flow at Vernita Bar to
    account for both the lag time from Priest Rapids and the Bank Storage effect, and it tends to
    drive a lower Priest Rapids discharge on the hours before daylight (lower than the daylight min
    flow) in order to meet the daylight min at Vernita Bar on the first daylight hour. The parameters
    for the Autoregressive Outflow Adjustment are based on a statistical analysis (by CADSWES) of
    the relationship between Priest Rapids and Vernita Bar flows during Reverse Load Factoring.";\ CONSTRAINT $ "Vernita Bar.Outflow" [t] <= maxFlow;\ \ CONSTRAINT $ "Vernita Bar.Outflow" [t] >= minFlow;\ \ ELSE\ DESCRIPTION "For the remaining daylight hours, the constraint is on PRD Outflow
    to prevent an oscillatory pattern in the PRD Outflow due to the lag effect.";\ CONSTRAINT $ "Priest Rapids.Outflow" [t] >= minFlow;\ \ END_IF_STATEMENT;\ \ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= maxFlow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Flows Day 4";\ DESCRIPTION "This goal constrains Vernita Bar.Outflow (USGS 12472800) during daylight in the Spawning Period to always be between 55 and 70 kcfs (Reverse Load Factoring) in accordance with the Hanford Reach Agreement C.1.(c). The SpawningPeriodDaylightHours function creates a list of timesteps for which the constraints are active. This function references the Spawning Period slots and the Sunrise and Sunset slots on the Dates Data Object. If it is not Spawning Period or if it is not a timestep between sunrise and sunset for that day, the constraints will be ignored. For the first daylight hour, the flow constraint is actually on Vernita Bar Outflow. This accounts for the lag effect that tends to drive a lower Priest Rapids release in the hour before the daylight flow constraint at Verniat Bar is in effect. For the remaining daylight hours, the constraint is on Priest Rapids Outflow to prevent an oscillatory pattern in the Priest Rapids Outflow due to the autoregressive lagged routing method used on the Vernita Bar reach object. The first constraint in each set requires the flow to be less than or equal to the RLF Daylight Max Flow Default scalar slot (70 kcfs). The second requires flow to be greater than or equal to the RLF Daylight Min Flow Default scalar slot (55 kcfs).

    Spawning Period flows can be restricted further by the Spawning Period Target Flow goal. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 4.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "For this high priority RLF daylight flow constraint, the solution will spill, if necessary, to stay within
    the Daylight Max Flow (spill overnight to draft to make sufficient space during the day).";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ IF_STATEMENT (NOT "IsDaylightHour"( t )) THEN\ DESCRIPTION "For the first hour, the flow constraint is on Vernita Bar Outflow. The Routing method for the
    Vernita Bar reach object uses an Autoregressive Outflow Adjustment. The modeled flow at
    Vernita Bar is a function of the lagged Outflow from Priest Rapids and the Vernita Bar flow on the
    previous timestep. This Autogressive Outflow Adjustment allows the flow at Vernita Bar to
    account for both the lag time from Priest Rapids and the Bank Storage effect, and it tends to
    drive a lower Priest Rapids discharge on the hours before daylight (lower than the daylight min
    flow) in order to meet the daylight min at Vernita Bar on the first daylight hour. The parameters
    for the Autoregressive Outflow Adjustment are based on a statistical analysis (by CADSWES) of
    the relationship between Priest Rapids and Vernita Bar flows during Reverse Load Factoring.";\ CONSTRAINT $ "Vernita Bar.Outflow" [t] <= maxFlow;\ \ CONSTRAINT $ "Vernita Bar.Outflow" [t] >= minFlow;\ \ ELSE\ DESCRIPTION "For the remaining daylight hours, the constraint is on PRD Outflow
    to prevent an oscillatory pattern in the PRD Outflow due to the lag effect.";\ CONSTRAINT $ "Priest Rapids.Outflow" [t] >= minFlow;\ \ END_IF_STATEMENT;\ \ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= maxFlow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Flows Remaining Days";\ DESCRIPTION "This goal constrains Vernita Bar.Outflow (USGS 12472800) during daylight in the Spawning Period to always be between 55 and 70 kcfs (Reverse Load Factoring) in accordance with the Hanford Reach Agreement C.1.(c). The SpawningPeriodDaylightHours function creates a list of timesteps for which the constraints are active. This function references the Spawning Period slots and the Sunrise and Sunset slots on the Dates Data Object. If it is not Spawning Period or if it is not a timestep between sunrise and sunset for that day, the constraints will be ignored. For the first daylight hour, the flow constraint is actually on Vernita Bar Outflow. This accounts for the lag effect that tends to drive a lower Priest Rapids release in the hour before the daylight flow constraint at Verniat Bar is in effect. For the remaining daylight hours, the constraint is on Priest Rapids Outflow to prevent an oscillatory pattern in the Priest Rapids Outflow due to the autoregressive lagged routing method used on the Vernita Bar reach object. The first constraint in each set requires the flow to be less than or equal to the RLF Daylight Max Flow Default scalar slot (70 kcfs). The second requires flow to be greater than or equal to the RLF Daylight Min Flow Default scalar slot (55 kcfs).

    Spawning Period flows can be restricted further by the Spawning Period Target Flow goal. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 5.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = @"Finish Timestep") DO\ DESCRIPTION "For this high priority RLF daylight flow constraint, the solution will spill, if necessary, to stay within
    the Daylight Max Flow (spill overnight to draft to make sufficient space during the day).";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC maxFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Max Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Max Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Max Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Max is input, use it. Otherwise use the default.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ IF_STATEMENT (NOT "IsDaylightHour"( t )) THEN\ DESCRIPTION "For the first hour, the flow constraint is on Vernita Bar Outflow. The Routing method for the
    Vernita Bar reach object uses an Autoregressive Outflow Adjustment. The modeled flow at
    Vernita Bar is a function of the lagged Outflow from Priest Rapids and the Vernita Bar flow on the
    previous timestep. This Autogressive Outflow Adjustment allows the flow at Vernita Bar to
    account for both the lag time from Priest Rapids and the Bank Storage effect, and it tends to
    drive a lower Priest Rapids discharge on the hours before daylight (lower than the daylight min
    flow) in order to meet the daylight min at Vernita Bar on the first daylight hour. The parameters
    for the Autoregressive Outflow Adjustment are based on a statistical analysis (by CADSWES) of
    the relationship between Priest Rapids and Vernita Bar flows during Reverse Load Factoring.";\ CONSTRAINT $ "Vernita Bar.Outflow" [t] <= maxFlow;\ \ CONSTRAINT $ "Vernita Bar.Outflow" [t] >= minFlow;\ \ ELSE\ DESCRIPTION "For the remaining daylight hours, the constraint is on PRD Outflow
    to prevent an oscillatory pattern in the PRD Outflow due to the lag effect.";\ CONSTRAINT $ "Priest Rapids.Outflow" [t] >= minFlow;\ \ END_IF_STATEMENT;\ \ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= maxFlow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Draft Volume Definitions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Draft Volume Definitions";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep + 6" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC maxStor = "Max"( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ), "OptValue"( res & "Storage", t ) COMMENTED_BY "We need this check in case it was not possible to satisfy all max elevation constraints." )) DO\ WITH_STATEMENT (NUMERIC minStor = "Min"( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ), "OptValue"( res & "Storage", t ) COMMENTED_BY "We need this check in case it was not possible to satisfy all min elevation constraints." )) DO\ CONSTRAINT "SlotFromDataObject"( res, "Draft Volume" ) [t] == maxStor - res & "Storage" [t];\ \ IF_STATEMENT (maxStor - minStor > 0.00000000 "kcfs-hr") THEN\ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] == "SlotFromDataObject"( res, "Draft Volume" ) [t] / ( maxStor - minStor );\ \ ELSE\ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] == 100.00000000 "percent";\ \ END_IF_STATEMENT;\ \ DESCRIPTION "We reduce the upper slot bound on Draft Volume here so that we have appropriate scaling.";\ CONSTRAINT "SlotFromDataObject"( res, "Draft Volume" ) [t] <= maxStor - minStor;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ WITH_STATEMENT (LIST resList = IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep + 6" TO @"Finish Timestep") DO\ CONSTRAINT $ "Nonfederal Data.Draft Volume Less RIS" [t] == FOR ( OBJECT res IN resList ) STAT_SUM\ "SlotFromDataObject"( res, "Draft Volume" ) [t]\ ENDFOR;\ \ WITH_STATEMENT (NUMERIC maxStor = FOR ( OBJECT res IN resList ) STAT_SUM\ "Max"( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ), "OptValue"( res & "Storage", t ) COMMENTED_BY "We need this check in case it was not possible to satisfy all max elevation constraints." )\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC minStor = FOR ( OBJECT res IN resList ) STAT_SUM\ "Min"( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ), "OptValue"( res & "Storage", t ) COMMENTED_BY "We need this check in case it was not possible to satisfy all min elevation constraints." )\ ENDFOR) DO\ IF_STATEMENT (maxStor - minStor > 0.00000000 "kcfs-hr") THEN\ CONSTRAINT $ "Nonfederal Data.Draft Percent without RIS" [t] == $ "Nonfederal Data.Draft Volume Less RIS" [t] / ( maxStor - minStor );\ \ ELSE\ CONSTRAINT $ "Nonfederal Data.Draft Percent without RIS" [t] == 100.00000000 "percent";\ \ END_IF_STATEMENT;\ \ DESCRIPTION "We reduce the upper slot bound on Draft Volume here so that we have appropriate scaling.";\ CONSTRAINT $ "Nonfederal Data.Draft Volume Less RIS" [t] <= maxStor - minStor;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Draft Feet Definitions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Draft Feet Definitions";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ($ "Nonfederal Data.Peak Valley" [t] > 0.00000000) THEN\ WITH_STATEMENT (NUMERIC maxElev = "Max"( "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ), "StorageToElevation"( res, "OptValue"( res & "Storage", t ) ) COMMENTED_BY "We need this check in case it was not possible to satisfy all max elevation constraints." )) DO\ WITH_STATEMENT (NUMERIC minElev = "Min"( "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ), "StorageToElevation"( res, "OptValue"( res & "Storage", t ) ) COMMENTED_BY "We need this check in case it was not possible to satisfy all min elevation constraints." )) DO\ CONSTRAINT "SlotFromDataObject"( res, "Draft Feet" ) [t] == maxElev - res & "Pool Elevation" [t];\ \ DESCRIPTION "We reduce the upper slot bound on Draft Volume here so that we have appropriate scaling.";\ CONSTRAINT "SlotFromDataObject"( res, "Draft Feet" ) [t] <= maxElev - minElev;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ WITH_STATEMENT (LIST resList = IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ($ "Nonfederal Data.Peak Valley" [t] > 0.00000000) THEN\ CONSTRAINT $ "Nonfederal Data.Draft Feet" [t] == FOR ( OBJECT res IN resList ) STAT_AVE\ "SlotFromDataObject"( res, "Draft Feet" ) [t]\ ENDFOR;\ \ WITH_STATEMENT (NUMERIC maxDraftFeet = "MaxItem"( FOR ( OBJECT res IN resList ) WITH LIST result = { } DO\ APPEND "Max"( "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ), "StorageToElevation"( res, "OptValue"( res & "Storage", t ) ) COMMENTED_BY "We need this check in case it was not possible to satisfy all max elevation constraints." ) - "Min"( "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ), "StorageToElevation"( res, "OptValue"( res & "Storage", t ) ) COMMENTED_BY "We need this check in case it was not possible to satisfy all min elevation constraints." ) ONTO result\ ENDFOR )) DO\ DESCRIPTION "We reduce the upper slot bound on Draft Feet here so that we have appropriate scaling.";\ CONSTRAINT $ "Nonfederal Data.Draft Feet" [t] <= maxDraftFeet;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Nonfed Limits for Meeting Requests";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Stay 0.5 ft Above License Min";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Pool Elevation" [t] >= "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) + 0.50000000 "ft";\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Active Storage Definition";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC minStorage = "Min"( "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) ), "OptValue"( res & "Storage", t ) )) DO\ CONSTRAINT "SlotFromDataObject"( res, "Active Storage" ) [t] == res & "Storage" [t] - minStorage;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Maintain 30 percent Nonfed Content";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "SlotFromDataObject"( res, "Active Storage" ) [t]\ ENDFOR >= $ "Nonfederal Data.Min Content Percent for Meeting Requests" [] * $ "Nonfederal Data.Max Available Storage" [];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Nonfed Generation Requests";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Nonfed Generation Requests All Timesteps";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 1";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 1.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 2";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 2.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 3";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 3.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 4";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 4.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 5";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 5.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 6";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 6.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 7";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 7.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 8";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 8.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 9";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 9.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 10";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 10.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 11";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 11.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hour 12";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 12.00000000) DO\ WITH_STATEMENT (DATETIME timestep = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (timestep <= @"Finish Timestep") THEN\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [timestep] == $ "Requests.Total Nonfed Request" [timestep];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 13-15";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 16-18";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 19-21";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 22-24";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 25-30";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 31-36";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 37-42";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 43-48";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 49-60";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Hours 61-72";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Nonfed Generation Requests Remaining Hours";\ DESCRIPTION "This goal requires that Nonfed Delivered Energy (Non-federal generationplus Bias) equals the Total Nonfed Request for all timesteps. This assures that all Non-Federal generation requests are met. Other constraints (Bias and Delivered Energy under User Defined Variables and the Ending Conditions) force total Delivered Energy (Federal and Non-Federal) to equal total system generation. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ FOREACH (DATETIME t IN beginTimestep TO @"Finish Timestep") DO\ CONSTRAINT $ "Requests.Nonfed Delivered Energy" [t] == $ "Requests.Total Nonfed Request" [t];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Rock Island Target Operating Range";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Rock Island Target Operating Range";\ DESCRIPTION "This goal forces the Rock Island Pool Elevation to remain within the Target Operating Range (1 ft from the top) at all times that this is possible based on higher priority constraints. This goal does not represent formal policy. It represents standard operational practice as described to CADSWES by Joe Taylor (October 15-17, 2013).";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Rock Island.Pool Elevation" [timestep] >= $ "Rock Island Constraints.License Max Pool Elevation" [] - $ "Rock Island Constraints.Target Operating Range" [];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "RLF Daylight Flows Constant";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "RLF Daylight Flows Constant All Days";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (LIST days = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR SET_UNION { @"Finish Timestep" }) DO\ FOREACH (DATETIME day IN days) DO\ WITH_STATEMENT (DATETIME dayStart = "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" )) DO\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( day, @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [t] == $ "Priest Rapids Constraints.RLF Daylight Outflow" [day];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "RLF Daylight Flows Constant Day 1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (DATETIME dayStart = @"Start Timestep") DO\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep", @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [t] == $ "Priest Rapids Constraints.RLF Daylight Outflow" [dayEnd];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "RLF Daylight Flows Constant Day 2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 2.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [t] == $ "Priest Rapids Constraints.RLF Daylight Outflow" [dayEnd];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "RLF Daylight Flows Constant Day 3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 3.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [t] == $ "Priest Rapids Constraints.RLF Daylight Outflow" [dayEnd];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "RLF Daylight Flows Constant Day 4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 4.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [t] == $ "Priest Rapids Constraints.RLF Daylight Outflow" [dayEnd];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "RLF Daylight Flows Constant Remaining Days";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 5.00000000) DO\ WITH_STATEMENT (DATETIME start = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (start <= @"Finish Timestep") THEN\ WITH_STATEMENT (LIST days = FOR ( DATETIME t IN start TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR SET_UNION { @"Finish Timestep" }) DO\ FOREACH (DATETIME day IN days) DO\ WITH_STATEMENT (DATETIME dayStart = "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" )) DO\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( day, @"24:00:00" ), @"Finish Timestep" )) DO\ WITH_STATEMENT (LIST RLFDaylightHours = "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ IF_STATEMENT (RLFDaylightHours != { }) THEN\ FOREACH (DATETIME t IN RLFDaylightHours) DO\ IF_STATEMENT ("IsDaylightHour"( t ) COMMENTED_BY "We don't force the flow on the first hour to be equal to the other hours, because it can over-c
    onstrain it.") THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [t] == $ "Priest Rapids Constraints.RLF Daylight Outflow" [day];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Spill Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Priest Rapids Spill Exchange";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Priest Rapids.Regulated Spill" [t] >= "GrantFishSpill"( % "Priest Rapids", t ) + $ "Priest Rapids Constraints.Spill Exchange Spill" [t];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "CJAD II Additional Restrictions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Minimize PRD Daily Low Flow Day 1";\ DESCRIPTION "The purpose of this goal is to force the weekend minimum flow during CJADII for Priest Rapids as low as possible in order to provide the maximum flexibility over the weekend. The weekend minimum flow constraint is based on the Hanford Reach Agreement C.5.(b).(6). The minimum flow on the weekend is taken as the average of the minimum hourly flow on each day, Monday through Thursday of the current week. Thus having one hour with the flow as low as possible on each of these days will keep the weekend minimum as low as possible.This goal will only apply during CJADII Period on Monday through Thursday.

    The goal tries to force the Daily Low Flow down to zero. It will not be able to go that low because of higher priority constraints (for example, it must already be >= Daily Low Flow Import and PLF), but this will get it as low as possible.

    This goal is for the first calendar day of the run. If there was already an observed (imported) Priest Rapids Outflow value today that got down to the Daily Low Flow Import, Then there is no need to constrain the remaining hours in the day, and so the constraint is skipped. A tolerance is included in the check because there could be observed flows that got very close to the Daily Low Flow Import but differed only by a small numeric gaging difference. In these cases we want to skip the constraint.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (DATETIME dayStart = @"Start Timestep") DO\ IF_STATEMENT ("IsCJADIIPeriod"( dayStart ) AND dayStart >= @"Monday" AND dayStart <= @"Thursday") THEN\ WITH_STATEMENT (DATETIME dayEnd = "NextDate"( dayStart, @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC observedMin = IF ( dayStart > @"1:00:00" )\ THEN\ "MinItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( dayStart, @"1:00:00" ), dayStart - 1.00000000 "hr" ) )\ ELSE\ 9999.00000000 "kcfs" COMMENTED_BY "Dummy Value
    If the run starts at 01:00, we do not have any observed values in this day to check."\ ENDIF COMMENTED_BY "This will be used to check if we already have an observed flow today that is low enough. If so,
    then we do not need to constrain the remaining hours today.") DO\ WITH_STATEMENT (NUMERIC minFlow = IF ( ( "MaxItem"( "GetSlotValsNaNToZero"( $ "Priest Rapids Constraints.Daily Low Flow Import", dayStart, dayEnd ) ) > 0.00000000 "kcfs" ) COMMENTED_BY "This expression is a way of determining if there are any Daily Low Flow Import values. If this
    expression is TRUE (at least one Dailiy Low Flow Import value is greater than 0), then it means
    that at lease one Import value was entered manually, and thus we use the Import as the target
    low flow to reach. Otherwise we use the default min." )\ THEN\ FOR ( DATETIME h IN dayStart TO dayEnd ) WITH NUMERIC result = 9999.00000000 "kcfs" DO\ IF ( $ "Priest Rapids Constraints.Daily Low Flow Import" [h] > 0.00000000 "kcfs" AND $ "Priest Rapids Constraints.Daily Low Flow Import" [h] < result )\ THEN\ $ "Priest Rapids Constraints.Daily Low Flow Import" [h]\ ELSE\ result\ ENDIF\ ENDFOR COMMENTED_BY "We are going to use the Daily Low Flow Import as the low flow we want to reach, but we first
    want to check to see if we already have an observed flow this day that is that low. If so, then
    there is no need to constrain the remaining hours in the day."\ ELSE\ $ "Vernita Bar Constraints.Protection Level Flow" [dayEnd] COMMENTED_BY "PLF is calculated every hour, even if it is not PLF season. Outside of PLF season, it uses the
    default Vernita Bar min flow."\ ENDIF) DO\ DESCRIPTION "Check if we need to apply the constraint, or if we already have an observed flow that is low
    enough, in which case there is no need to constrain the remaining flows.";\ IF_STATEMENT (( dayStart == @"1:00:00" ) COMMENTED_BY "If the run starts at 01:00, then we have no observed values for this day, so we will always apply
    the constraint." OR observedMin > minFlow + $ "Priest Rapids Constraints.Daily Low Flow Tolerance" [dayEnd] COMMENTED_BY "We include a tolerance because there could be an observed flow that is very close but only
    misses the target due to small gaging errors.") THEN\ IF_STATEMENT (( $ "Priest Rapids Constraints.Flow Band Estimated Average Flow" [dayEnd] >= $ "Priest Rapids Constraints.Flow Band Ranges" [3.00000000, 0.00000000] COMMENTED_BY "This holds the threshold for setting the PRD min flow (currently 170 kcfs)." ) COMMENTED_BY "Are we in a high flow condition where we just use a PRD Min Flow rather than a Flow Band?" OR ( WITH LIST outflowVals = IF ( dayStart > @"1:00:00" )\ THEN\ "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( dayStart, @"1:00:00" ), dayStart - 1.00000000 "hr" )\ ELSE\ { }\ ENDIF SET_UNION FOR ( DATETIME t IN dayStart TO dayEnd ) WITH LIST result = { } DO\ APPEND "OptValue"( $ "Priest Rapids.Outflow", t ) ONTO { }\ ENDFOR DO\ "MaxItem"( outflowVals ) - "MinItem"( outflowVals )\ ENDWITH < $ "Priest Rapids Constraints.Flow Bands" [dayEnd] ) COMMENTED_BY "Are we not using the full flow band?") THEN\ DESCRIPTION "In these cases the Daily Low Flow variable can actually be less than the lowest Outflow value. So
    we just pick an hour and minimize Outflow on that hour. We use the hour between 18:00 and
    22:00 with the lowest Nonfed Request.";\ WITH_STATEMENT (DATETIME hourForMinFlow = WITH LIST hourAndMinRequest = FOR ( DATETIME t IN "PreviousDate"( dayEnd, @"18:00:00" ) TO "PreviousDate"( dayEnd, @"22:00:00" ) ) WITH LIST result = { "PreviousDate"( dayEnd, @"18:00:00" ) , 99999.00000000 "MWH" } DO\ IF ( $ "Requests.Total Nonfed Request" [t] <= GET @INDEX 1.00000000 FROM result )\ THEN\ { t , $ "Requests.Total Nonfed Request" [t] }\ ELSE\ result\ ENDIF\ ENDFOR DO\ GET @INDEX 0.00000000 FROM hourAndMinRequest\ ENDWITH) DO\ CONSTRAINT ( $ "Priest Rapids.Outflow" [hourForMinFlow] <= 0.00000000 "kcfs" ) COMMENTED_BY "We simply constrain flow to be zero as a way to minimize the Daily Low Flow. It will not actually
    be able to get down to zero because of higher priority constraints, but this will get it as low as
    possible. ";\ \ END_WITH_STATEMENT;\ \ ELSE\ CONSTRAINT ( $ "Priest Rapids Constraints.Daily Low Flow" [dayEnd] <= 0.00000000 "kcfs" ) COMMENTED_BY "We simply constrain flow to be zero as a way to minimize the Daily Low Flow. It will not actually
    be able to get down to zero because of higher priority constraints, but this will get it as low as
    possible. ";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Minimize PRD Daily Low Flow Remaining Days";\ DESCRIPTION "The purpose of this goal is to force the weekend minimum flow during CJADII for Priest Rapids as low as possible in order to provide the maximum flexibility over the weekend. The weekend minimum flow constraint is based on the Hanford Reach Agreement C.5.(b).(6). The minimum flow on the weekend is taken as the average of the minimum hourly flow on each day, Monday through Thursday of the current week. Thus having one hour with the flow as low as possible on each of these days will keep the weekend minimum as low as possible.This goal will only apply during CJADII Period on Monday through Thursday.

    The goal tries to force the Daily Low Flow down to zero. It will not be able to go that low because of higher priority constraints (for example, it must already be >= Daily Low Flow Import and PLF), but this will get it as low as possible.

    This goal is for all days after the first calendar day of the run.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (LIST dayList = FOR ( DATETIME t IN "NextDate"( @"Start Timestep + 24", @"24:00:00" ) TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( ( t == @"24:00:00" OR ( t == @"Finish Timestep" AND t >= @"18:00:00" ) ) AND "IsCJADIIPeriod"( t ) AND t >= @"Monday" AND t <= @"Thursday" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR) DO\ IF_STATEMENT (dayList != { }) THEN\ FOREACH (DATETIME day IN dayList) DO\ IF_STATEMENT (( $ "Priest Rapids Constraints.Flow Band Estimated Average Flow" [day] >= $ "Priest Rapids Constraints.Flow Band Ranges" [3.00000000, 0.00000000] COMMENTED_BY "This holds the threshold for setting the PRD min flow (currently 170 kcfs)." ) COMMENTED_BY "Are we in a high flow condition where we just use a PRD Min Flow rather than a Flow Band?" OR ( WITH LIST outflowVals = FOR ( DATETIME t IN "PreviousDate"( day, @"1:00:00" ) TO day ) WITH LIST result = { } DO\ APPEND "OptValue"( $ "Priest Rapids.Outflow", t ) ONTO { }\ ENDFOR DO\ "MaxItem"( outflowVals ) - "MinItem"( outflowVals )\ ENDWITH < $ "Priest Rapids Constraints.Flow Bands" [day] ) COMMENTED_BY "Are we not using the full flow band?") THEN\ DESCRIPTION "In these cases the Daily Low Flow variable can actually be less than the lowest Outflow value. So
    we just pick an hour and minimize Outflow on that hour. We use the hour between 18:00 and
    22:00 with the lowest Nonfed Request.";\ WITH_STATEMENT (DATETIME hourForMinFlow = WITH LIST hourAndMinRequest = FOR ( DATETIME t IN "PreviousDate"( day, @"18:00:00" ) TO "DateMin"( "PreviousDate"( day, @"22:00:00" ), @"Finish Timestep" ) ) WITH LIST result = { "PreviousDate"( day, @"18:00:00" ) , 99999.00000000 "MWH" } DO\ IF ( $ "Requests.Total Nonfed Request" [t] <= GET @INDEX 1.00000000 FROM result )\ THEN\ { t , $ "Requests.Total Nonfed Request" [t] }\ ELSE\ result\ ENDIF\ ENDFOR DO\ GET @INDEX 0.00000000 FROM hourAndMinRequest\ ENDWITH) DO\ CONSTRAINT ( $ "Priest Rapids.Outflow" [hourForMinFlow] <= 0.00000000 "kcfs" ) COMMENTED_BY "We simply constrain flow to be zero as a way to minimize the Daily Low Flow. It will not actually
    be able to get down to zero because of higher priority constraints, but this will get it as low as
    possible. ";\ \ END_WITH_STATEMENT;\ \ ELSE\ CONSTRAINT ( $ "Priest Rapids Constraints.Daily Low Flow" [day] <= 0.00000000 "kcfs" ) COMMENTED_BY "We simply constrain flow to be zero as a way to minimize the Daily Low Flow. It will not actually
    be able to get down to zero because of higher priority constraints, but this will get it as low as
    possible. ";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Minimize Nonfed Spill All Timesteps Equal, Full Table";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Minimize Nonfed Spill0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = IF ( isFishSpillSeason )\ THEN\ "MinSpillLevelsFishSpillSeason"( )\ ELSE\ "MinSpillLevelsNoFishSpill"( )\ ENDIF) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Minimize Nonfed Spill Single Priority";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Reduce Spill Bounds";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ DESCRIPTION "Check that the table goes as far as this level, otherwise ignore this goal";\ IF_STATEMENT ("MinSpillLevels"( ) > minSpillIndex) THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = $ "Nonfederal Data.Spill Minimization Table" [minSpillIndex, STRINGIFY res]) DO\ DESCRIPTION "For Priest Rapds and Wanapum, the table values are on top of fish spill, so add fish spill into the
    max allowable total spill.";\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, maxSpill, t );\ \ ENDFOREACH;\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "DouglasMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC maxSpillAdjusted = "ChelanMaxSpillAdjusted"( res, maxSpill, t )) DO\ CONSTRAINT res & "Spill" [t] <= maxSpillAdjusted;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "No Excess Nonfed Spill";\ DESCRIPTION "The constraints in this goal model all Fish Spill, Fish Bypass and Fish Ladder policy. Fish Spill flows are modeled by the Reservoir.Regulated Spill slot. Fish Bypass and Fish Ladder flows (Rocky Reach and Rock Island only) are combined and modeled by the Reservoir.Bypass slot.

    For actual operations, the Special Operations Min Spill slot will typically be used to implement Fish Spill requirements. Values set in the Special Operations Min Spill slot will override all other Spill requirements for a given reservoir. For cases when values are not entered in the Special Operations Min Spill slot (such as for a planning study) the following forms of the constraints will be used;

    Wells Fish Spill:
    The first set of constraints is for Wells Fish Spill. The actual Fish Spill through Wells depends on which units are running. This can either be approximated with a percentage of total Outflow or Fish Spill can be set manually for each timestep. The IsActiveSeason function determines if it is the Wells Summer Fish Spill season. If the run period is not in this season, the the Wells constraints will be ignored. It then checks the Wells Constraints.Summer Fish Spill Manual series slot. For any timesteps that have a value in this slot the Regulated Spill will be required to be greater than or equal to this flow value. For any timesteps without a flow value on this slot, the Summer Fish Spill Percent Manual slot will be checked. If it contains a value, Regulated Spill will be required to be greater than or equal to this percentage of Wells.Outflow at every timestep. If there is no value in the Percent Manual slot the Summer Fish Spill Percent Default slot (8%) will be used. Wells Fish Spill constraints are based on an email from Arlen Simon, Douglas County PUD via Joe Taylor, March 9, 2011, and the 8% default value is based on the document Mid-Columbia Projects - List of Operating Constraints as provided to CADSWES by Joe Taylor, October 13, 2011.

    Rocky Reach Fish Spill:
    Rocky Reach has separate constraints for Spring and Summer Fish Spill allowing separate daily fish spill amounts to be set for the two seasons. The spill requirement is a percent of total daily outflow, so the constraint is evaluated only for the midnight timestep of each day during the Fish Spill Season. The IsActiveSeasonEndOfDay function determines if it is midnight in the Fish Spill season. The total Rocky Reach Regulated Spill for the day as calculated by the DailyTotalFlow function is required to be greater than or equal to the value of the DailyFishSpill function. This function calculates a percentage of total daily Outflow using the Rocky Reach Constraints.Spring/Summer Fish Spill Percent Manual scalar slot if it has a value or the Rocky Reach Constraints.Spring/Summer Fish Spill Percent Default if there is no value in the Manual slot.

    Rock Island Fish Spill
    The Rock Island Fish Spill constraints operate the same as the Rocky Reach Fish Spill constraints using the corresponding Rock Island slots.

    Rocky Reach and Rock Island Fish Ladder and Bypass
    Fish Ladder and Fish Bypass flows are combined in the Reservoir.Bypass slot. The Bypass slot for both reservoirs is constrained in this set of constraints to equal the value on the Reservoir Constraints.Fish Ladder slot or Fish Ladder plus Fish Bypass if there is a value on both slots. For any timestep without a value on the Fish Ladder slot (displays NaN) the Bypass for the reservoir is constrained to be 0 kcfs to prevent the optimization from 'cheating' by sending excess spill through the bypass. NOTE: There is no separate Default slot for Fish Ladder or Fish Bypass. The appropriate flow values must be entered on these slots for the constraint to operate.

    All Rocky Reach and Rock Island Fish Spill, Fish Bypass and Fish Ladder constraints are based on the spreadsheets Data for ORNL Model 2-14-2011.xlsx and RR&RI_Historic_Fish_Spill_1995_to_2010.xlsx provided to CADSWES by Chelan County PUD.

    Wanapum and Priest Rapids Fish Spill:
    Wanapum and Priest Rapids have separate constraints for Summer and Fall Fish Spill allowing separate Fish Spill amounts to be set for the two seasons. The IsActiveSeason function determines if it is the Summer/Fall Fish Spill season. If the run period is not in this season, the constraints will be ignored. The Fish Spill constraints require the Reservoir Regulated Spill to be greater than or equal to the flow value from the Summer/Fall Fish Spill Manual slot at all timesteps during the Fish Spill season. If there is no value in the Manual slot, the Default slot will be used. All Wanapum and Priest Rapids Fish Spill constraints are based on the spreadsheet MID-C Operations Annual Timeline 2010-2011.xlsx provided to CADSWES by Grant County PUD. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ IF_STATEMENT (res == % "Wanapum" OR res == % "Priest Rapids") THEN\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ELSE\ IF_STATEMENT (res == % "Wells") THEN\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ELSE\ DESCRIPTION "Rocky Reach and Rock Island";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Minimize Nonfed Spill by Time Blocks Weighted Downstream";\ DESCRIPTION "This Minimize Nonfed Spill policy first minimizes spill on the first timestep, then the second timestep, etc. Thus it will push any necessary spill, given the Nonfed Request, as late in the run as possible. This poilcy group uses a single priority for the first timestep (i.e. first minimize spill on the first timestep). After that the timesteps are grouped into blocks of multiple timesteps per priority, indicated by the name of the goal. Grouping the timesteps into blocks allows the solution to have a little more flexibility to smooth out the solution than if each timestep has its own priority.";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Reduce Spill Bounds All Timesteps";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ CONSTRAINT res & "Spill" [t] <= "SlotFromDataObject"( res, "Spill Reduced Bound" ) [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hour 1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC timestepNumber = 1.00000000) DO\ WITH_STATEMENT (DATETIME t = @"Start Timestep" - 1.00000000 "hr" + timestepNumber * 1.00000000 "hr") DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 2-3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 2.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ FOREACH (OBJECT res IN { % "Wells" }) DO\ CONSTRAINT res & "Spill" [t] <= "DouglasMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ CONSTRAINT res & "Spill" [t] <= "ChelanMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Spill" [t] <= "GrantMaxSpillAdjusted"( res, 0.00000000 "kcfs", t );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Minimize Nonfed Spill Full Table, Time Blocks for Final Level";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Set Spill Minimization Use Time Priority for Final Level Only";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ CONSTRAINT $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only" [@"Start Timestep"] == 1.00000000;\ \ END;\ \ RULE "Minimize Nonfed Spill0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spil24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ WITH_STATEMENT (NUMERIC minSpillValueInRow = "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) )) DO\ DESCRIPTION "We only apply the constraint over all timesteps until we get down to zero values in the row. Once
    we hit a row that has 0 (tries to minimize spill down to zero) we start going in time priority order.";\ IF_STATEMENT (minSpillValueInRow > 0.00000000 "kcfs") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Minimize Nonfed Spill by Time Blocks Full Table";\ DESCRIPTION "This Minimize Nonfed Spill policy first minimizes spill on the first timestep, then the second timestep, etc. Thus it will push any necessary spill, given the Nonfed Request, as late in the run as possible. This poilcy group uses a single priority for the first timestep (i.e. first minimize spill on the first timestep). After that the timesteps are grouped into blocks of multiple timesteps per priority, indicated by the name of the goal. Grouping the timesteps into blocks allows the solution to have a little more flexibility to smooth out the solution than if each timestep has its own priority.";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Spill Minimization Use Time Priority for Final Level Only";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DESCRIPTION "If the previous policy group was active, this variable will have already been set to 1, and this
    goal will do nothing. We will only minimize by time priority for the final rows in the table. If the
    previous group was inactive, then this goal will set the variable down to 0, so the time priority
    logic in the following goals will apply for all rows in the table.";\ EXPRESSION_OBJECTIVE MINIMIZE $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only" [@"Start Timestep"];\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 1-3 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 1.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 3.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 4-6 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 4.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 6.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 7-9 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 7.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 9.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 10-12 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 10.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 12.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 13-15 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 16-18 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 16.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 18.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 19-21 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 19.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 21.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 22-24 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 22.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 24.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 25-30 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 25.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 30.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 31.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 36.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 31-36 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 13.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 15.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, 0.00000000, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, 0.00000000, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 37-42 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 37.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 42.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 43-48 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 43.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 48.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 49-60 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 49.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 60.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Hours 61-72 Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC beginTimestepNumber = 61.00000000) DO\ WITH_STATEMENT (NUMERIC endTimestepNumber = 72.00000000) DO\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME endTimestep = "DateMin"( @"Start Timestep" - 1.00000000 "hr" + endTimestepNumber * 1.00000000 "hr", @"Finish Timestep" )) DO\ IF_STATEMENT (endTimestepNumber - beginTimestepNumber < $ "Nonfederal Data.Spill Minimization RMM Threshold" []) THEN\ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ ELSE\ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row0";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 0.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 1.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 2.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 3.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 4.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 5.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row6";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 6.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row7";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 7.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row8";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 8.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row9";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 9.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row10";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 10.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row11";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 11.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row12";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 12.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row13";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 13.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row14";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 14.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 15.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row16";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 16.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row17";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 17.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row18";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 18.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row19";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 19.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row20";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 20.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row21";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 21.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row22";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 22.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row23";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 23.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row24";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 24.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Minimize Nonfed Spill Remaining Hours Row25";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ DESCRIPTION "This is only included in case the run gets extended past 72 hours. All additional hours after 72 will
    get grouped into a single block. If the run is 72 hours (or less), this goal will do nothing.";\ WITH_STATEMENT (NUMERIC beginTimestepNumber = 73.00000000) DO\ WITH_STATEMENT (DATETIME beginTimestep = @"Start Timestep" - 1.00000000 "hr" + beginTimestepNumber * 1.00000000 "hr") DO\ IF_STATEMENT (beginTimestep <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC minSpillIndex = 25.00000000) DO\ WITH_STATEMENT (DATETIME endTimestep = @"Finish Timestep") DO\ FOREACH (DATETIME t IN beginTimestep TO endTimestep) DO\ WITH_STATEMENT (BOOLEAN isFishSpillSeason = "IsAnyFishSpillSeason"( t )) DO\ WITH_STATEMENT (SLOT spillTableSlot = IF ( isFishSpillSeason )\ THEN\ $ "Nonfederal Data.Spill Minimization Table Fish Spill Season"\ ELSE\ $ "Nonfederal Data.Spill Minimization Table No Fish Spill"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillLevels = "NumRows"( spillTableSlot )) DO\ IF_STATEMENT (spillLevels > minSpillIndex) THEN\ IF_STATEMENT (( "OptValue"( $ "Nonfederal Data.Spill Minimization Use Time Priority for Final Level Only", @"Start Timestep" ) == 0.00000000 OR "MinItem"( "GetTableRowVals"( spillTableSlot, minSpillIndex, IF ( "FourProjectCoordination"( ) )\ THEN\ 1.00000000 COMMENTED_BY "Don't use the Wells column if it is Four Project Coordination"\ ELSE\ 0.00000000\ ENDIF, 4.00000000 ) ) == 0.00000000 "kcfs" ) COMMENTED_BY "We only use this version if we are using time priorities for all levels in the table (first condition) or
    if we are down to a level in the table that has a zero spill value for at least one project (second
    condition).") THEN\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxSpill = spillTableSlot [minSpillIndex, STRINGIFY res]) DO\ IF_STATEMENT (minSpillIndex == 0.00000000 OR ( maxSpill < spillTableSlot [minSpillIndex - 1.00000000, STRINGIFY res] ) COMMENTED_BY "Only try to apply this constraint if it is more restrictive than the previous row. This is only for
    efficiency. The soluton would be the same if we left this condition out.") THEN\ CONSTRAINT res & "Spill" [t] <= "MaxSpillAdjusted"( res, maxSpill, t );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Priest Rapids Flow Bands Additional Restrictions";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Priest Rapids Flow Change Across Midnight - Leave turned off as it has flow change limits up and down";\ DESCRIPTION "This goal is in place to prevent a large jump or sharp drop in Priest Rapids Outflow between two days. The Priest Rapids Flow Bands goal limits flow fluctuations within each day but does not prevent a large change in flow from one day to the next. Without this goal in place, Optimization could specify an unconstrained jump (or drop) in Priest Rapids Outflow from midnight of one day to the first hour of the next day.

    This RearingPeriod function creates a list of midnight timesteps in the Rearing Period. If the run period is not during the Rearing Period, this goal is ignored. Also if the final timestep of the run is at midnight, the constraint will not be active for this final midnight timestep. (Trying to look ahead for the first hour of the next day when this timestep would not exist in the run period would cause the run to abort.) For all other midnight timesteps in the run, two constraints are applied. The first constraint limits a decrease in Outflow to be less than the value in the Priest Rapids Constraints.Max Flow Decrease At Midnight scalar slot. (Note: the value in this slot is positive, currently 20 kcfs) The second constraint limits an increase in Outflow to be less than the value in the Priest Rapids Constraints.Max Flow Increase At Midnight scalar slot (currently 40 kcfs). The values in these slots can be adjusted as deemed necessary to model realistic operations.

    This goal is not based directly on formal policy but is in place to assure that the Priest Rapids Flow Bands constraints operate according to the intent of the Hanford Reach Agreement C.5. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "RearingPeriod"( )) DO\ IF_STATEMENT (day != @"Finish Timestep") THEN\ DESCRIPTION "This constraint needs to be discussed with the Mid-Cs
    Limit Flow Change Across Midnight for Decreasing Flow
    Has flow change limits, we don't wan this, leave turned off";\ CONSTRAINT $ "Priest Rapids.Outflow" [day] - $ "Priest Rapids.Outflow" [day + 1.00000000 "hr"] <= $ "Priest Rapids Constraints.Max Flow Decrease At Midnight" [];\ \ DESCRIPTION "Limit Flow Change Across Midnight for Increasing Flow";\ CONSTRAINT $ "Priest Rapids.Outflow" [day + 1.00000000 "hr"] - $ "Priest Rapids.Outflow" [day] <= $ "Priest Rapids Constraints.Max Flow Increase At Midnight" [];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Special Operations Soft Constraints";\ DESCRIPTION "The Special Operations goals allow any necessary additional constraints to be set on individual projects, such as for maintenance. All of these constraints are activated only for timesteps when values are present in the corresponding Special Operations slot. The constraints have been divided into three separate goals corresponding to what variables are being constrained: Pool Elevations, Outflows, Generation. The Outflows goal contains constraints on total Outflow, Turbine Release, Spill and Tailwater Elevation. Note that certain Special Operations slots are also referenced in other goals as well. ";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Special Operations Soft Min Pool Elevation";\ DESCRIPTION "This goal allows for additional soft constraints to be set on Pool Elevation for non-fed reservoirs for any purpose. Appropriate Elevation Margins for uncertainty are incorporated into the constraints. The Margins are specified differently for the Federal and Non-federal reservoirs, which is the reason for the two differenct forms of the constraints. These constraints will only be active when there is a value in the corresponding Special Operations Soft Min/Max Pool Elevation slot, and that value is more restrictive than the standard License Min/Max Pool Elevation.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Pool Elevation" ), t )) THEN\ CONSTRAINT res & "Pool Elevation" [t] >= "SlotValueFromDataObject"( res, "Special Operations Soft Min Pool Elevation", t ) + "SlotValueFromDataObject"( res, "Pool Elevation Min Margin", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Min Outflow";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Outflow" ), t )) THEN\ CONSTRAINT res & "Outflow" [t] >= "SlotValueFromDataObject"( res, "Special Operations Soft Min Outflow", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Min Turbine Release";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Turbine Release" ), t )) THEN\ CONSTRAINT res & "Turbine Release" [t] >= "SlotValueFromDataObject"( res, "Special Operations Soft Min Turbine Release", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Min Generation";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Generation" ), t )) THEN\ CONSTRAINT res & "Power" [t] >= "SlotValueFromDataObject"( res, "Special Operations Soft Min Generation", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Min Tailwater Elev";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Tailwater Elev" ), t )) THEN\ CONSTRAINT res & "Tailwater Elevation" [t] >= "SlotValueFromDataObject"( res, "Special Operations Soft Min Tailwater Elev", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "For Priest Rapids, we convert the Tailwater Constraint to a constraint on Outflow. The Priest
    Rapids Tailwater is a function of Outflow only, so this way we can remove all approximation error
    from linearization from the constraint.";\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Tailwater Elev" ), t )) THEN\ WITH_STATEMENT (NUMERIC twVal = "SlotValueFromDataObject"( res, "Special Operations Soft Min Tailwater Elev", t )) DO\ WITH_STATEMENT (NUMERIC minOutflow = IF ( ( twVal >= res & "Tailwater Table" [0.00000000, 1.00000000] ) COMMENTED_BY "Make sure it is not below the lowest value in the table" )\ THEN\ "TableInterpolation"( res & "Tailwater Table", 1.00000000, 0.00000000, twVal, t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ CONSTRAINT res & "Outflow" [t] >= minOutflow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Max Pool Elevation";\ DESCRIPTION "This goal allows for additional constraints to be set on Pool Elevation for all Non-fed reservoirs for any purpose. Appropriate Elevation Margins for uncertainty are incorporated into the constraints. The Margins are specified differently for the Federal and Non-federal reservoirs, which is the reason for the two differenct forms of the constraints. These constraints will only be active when there is a value in the corresponding Special Operations Soft Min/Max Pool Elevation slot, and that value is more restrictive than the standard License Min/Max Pool Elevation.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott


    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Pool Elevation" ), t )) THEN\ CONSTRAINT res & "Pool Elevation" [t] <= "SlotValueFromDataObject"( res, "Special Operations Soft Max Pool Elevation", t ) - "SlotValueFromDataObject"( res, "Pool Elevation Max Margin", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Max Outflow";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Outflow" ), t )) THEN\ CONSTRAINT res & "Outflow" [t] <= "SlotValueFromDataObject"( res, "Special Operations Soft Max Outflow", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Max Turbine Release";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Turbine Release" ), t )) THEN\ CONSTRAINT res & "Turbine Release" [t] <= "SlotValueFromDataObject"( res, "Special Operations Soft Max Turbine Release", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Max Generation";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (OBJECT downstreamRes = "DownstreamRes"( res )) DO\ WITH_STATEMENT (LIST days = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" AND t > @"Start Timestep" + 12.00000000 "hr" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR SET_UNION { @"Finish Timestep" }) DO\ WITH_STATEMENT (LIST dayIndices = "GetNumbers"( 0.00000000, ( LENGTH days ) - 1.00000000, 1.00000000 )) DO\ FOREACH (NUMERIC i IN dayIndices) DO\ WITH_STATEMENT (DATETIME end = GET @INDEX i FROM days) DO\ WITH_STATEMENT (DATETIME start = IF ( i == 0.00000000 )\ THEN\ @"Start Timestep"\ ELSE\ "PreviousDate"( end, @"1:00:00" )\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minOutVol = "QOMinVolumeEstimateInitial"( res, start, end )) DO\ WITH_STATEMENT (NUMERIC OHAvg = "OHAVgEstimateInitial"( res, minOutVol, start, end )) DO\ WITH_STATEMENT (NUMERIC maxQTVol = "QTMaxVolumeEstimateGivenOHAvg"( res, OHAvg, start, end )) DO\ WITH_STATEMENT (NUMERIC fishSpillVol = "SumFlowsToVolume"( "SlotFromDataObject"( res, "Spill Required" ), start, end ) COMMENTED_BY "Required Fish Spill") DO\ WITH_STATEMENT (NUMERIC minQSVol = "MaxItem"( { fishSpillVol , minOutVol - maxQTVol } )) DO\ WITH_STATEMENT (BOOLEAN highFlow = minQSVol > fishSpillVol) DO\ FOREACH (DATETIME t IN start TO end) DO\ DESCRIPTION "We convert the max gen constraint into a max QT constraint to help prevent violations due to
    approximation error from linearizing Power.";\ WITH_STATEMENT (NUMERIC QOest = IF ( highFlow )\ THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] COMMENTED_BY "We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ELSE\ "MinItem"( { "SlotFromDataObject"( res, "Outflow Estimate" ) [t] , IF ( "SlotFromDataObject"( res, "HK Estimate" ) [t] > 0.00000000 "MW/kcfs" )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Max Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t] + "SlotFromDataObject"( res, "Spill Required" ) [t]\ ELSE\ 30000.00000000 "kcfs" COMMENTED_BY "Dummy Value"\ ENDIF } ) COMMENTED_BY "We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ENDIF) DO\ WITH_STATEMENT (NUMERIC PEest = IF ( highFlow )\ THEN\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t]\ ELSE\ ( ( "SlotFromDataObject"( res, "Pool Elevation Estimate" ) [t - 1.00000000 "hr"] + "SlotFromDataObject"( res, "Pool Elevation Estimate" ) [t] ) / 2.00000000 ) COMMENTED_BY "The Operating Head calculation uses the average from the end of the previous timestep and end
    of the current timestep.
    We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ENDIF) DO\ WITH_STATEMENT (NUMERIC TWBaseValEst = IF ( res == % "Priest Rapids" )\ THEN\ 0.00000000 "ft" COMMENTED_BY "Priest Rapids Tailwater is not dependent on a downstream elevation."\ ELSE\ ( ( "SlotFromDataObject"( downstreamRes, "Pool Elevation Estimate" ) [t - 1.00000000 "hr"] + "SlotFromDataObject"( downstreamRes, "Pool Elevation Estimate" ) [t] ) / 2.00000000 ) COMMENTED_BY "The Tailwater calculation uses the average base value from the end of the previous timestep and
    end of the current timestep.
    We could potentially refine this estimate in the future, but for now we just use the estimate that
    comes from the init rules for the H/K objective."\ ENDIF COMMENTED_BY "We might want to refine this later.") DO\ WITH_STATEMENT (NUMERIC TWest = IF ( res == % "Rocky Reach" OR res == % "Priest Rapids" )\ THEN\ ( TWBaseValEst + "TableInterpolation"( res & "Tailwater Table", 0.00000000, 1.00000000, QOest, t ) ) COMMENTED_BY "These projects use the Base Value Plus Lookup Table method."\ ELSE\ "TableInterpolation3D"( res & "Stage Flow Tailwater Table", 0.00000000, QOest, 1.00000000, TWBaseValEst, 2.00000000, t ) COMMENTED_BY "The other projects use the Stage Flow Lookup Table method."\ ENDIF) DO\ WITH_STATEMENT (NUMERIC OHest = PEest - TWest) DO\ WITH_STATEMENT (NUMERIC maxGen = "MinItem"( { "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] , WITH NUMERIC maxQT = "TableInterpolation"( res & "Auto Max Turbine Q", 0.00000000, 1.00000000, OHest, t ) DO\ "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, OHest, 1.00000000, maxQT, 2.00000000, t )\ ENDWITH } )) DO\ WITH_STATEMENT (NUMERIC maxQTInit = "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, OHest, 2.00000000, maxGen, 1.00000000, t ) COMMENTED_BY "Calculate the max Turbine Release given the max gen and the initial Opearting Head estimate") DO\ CONSTRAINT res & "Turbine Release" [t] <= maxQTInit;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Soft Max Tailwater Elev";\ DESCRIPTION "This goal allows for additional soft constraints to be set for all five non-fed reservoirs for Maximum Outflow, Minimum Outflow, Maximum Turnbine Release, Minimum Turbine Release, Maximum Daily Spill, Minimum Daily Spill, Maximum Tailwater Elevation, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations Soft slot, and that value is more restrictive than any standard limits on the corresponding variable.

    sjb 6/27/16 Copied "Special Operation XXX" goals 16-25 to "Special Operation Soft XXX" goals 26-35, disabled fed portion, or changed [ListSubbasin ("Reservoir")] to [NonFedReservoirs()], and revised above description. Mitch, when you incorporate this goal into the master model, if it works for you please delete this comment, and deleted disabled portion above. Thank you, Scott

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Tailwater Elev" ), t )) THEN\ CONSTRAINT res & "Tailwater Elevation" [t] <= "SlotValueFromDataObject"( res, "Special Operations Soft Max Tailwater Elev", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "For Priest Rapids, we convert the Tailwater Constraint to a constraint on Outflow. The Priest
    Rapids Tailwater is a function of Outflow only, so this way we can remove all approximation error
    from linearization from the constraint.";\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Tailwater Elev" ), t )) THEN\ WITH_STATEMENT (NUMERIC twVal = "SlotValueFromDataObject"( res, "Special Operations Soft Max Tailwater Elev", t )) DO\ WITH_STATEMENT (NUMERIC maxOutflow = WITH NUMERIC numRows = "NumRows"( res & "Tailwater Table" ) DO\ IF ( twVal <= res & "Tailwater Table" [numRows - 1.00000000, 1.00000000] )\ THEN\ "TableInterpolation"( res & "Tailwater Table", 1.00000000, 0.00000000, twVal, t )\ ELSE\ res & "Tailwater Table" [numRows - 1.00000000, 0.00000000]\ ENDIF\ ENDWITH COMMENTED_BY "Make sure it is not above the highest value in the table") DO\ CONSTRAINT res & "Outflow" [t] <= maxOutflow;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Target Accumulated Exchange Limits";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Target Accumulated Exchange Limits";\ DESCRIPTION "These constraints allow a more restricitve limit to be set on Accumulated Exchange, for example, if Accumulated Exchange must be paid back by the end of the day. These optional constraints operate similarly to the Federal Accumulated Exchange Limits with the exception that the associated Target Max or Target Min slot is referenced. These constraints will only be active if a value is specified in the corresponding Target slot. For example if a value is entered on the final time step of the day, it will operate across the day to meet that Accumulated Exchange limit at the end of the day. If no value is entered, the constraints will be ignored.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Target limits on combined Federal Accumulated Exchange";\ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Accumulated Exchange Target Min", t )) THEN\ CONSTRAINT "FederalAccumulatedExchange"( t ) >= $ "Federal Constraints.Accumulated Exchange Target Min" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Accumulated Exchange Target Max", t )) THEN\ CONSTRAINT "FederalAccumulatedExchange"( t ) <= $ "Federal Constraints.Accumulated Exchange Target Max" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Accumulated Exchange Target Min", t )) THEN\ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] >= $ "Grand Coulee Constraints.Accumulated Exchange Target Min" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Accumulated Exchange Target Max", t )) THEN\ CONSTRAINT $ "Grand Coulee Constraints.Accumulated Exchange" [t] <= $ "Grand Coulee Constraints.Accumulated Exchange Target Max" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Accumulated Exchange Target Min", t )) THEN\ CONSTRAINT $ "Chief Joseph Constraints.Accumulated Exchange" [t] >= $ "Chief Joseph Constraints.Accumulated Exchange Target Min" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Accumulated Exchange Target Max", t )) THEN\ CONSTRAINT $ "Chief Joseph Constraints.Accumulated Exchange" [t] <= $ "Chief Joseph Constraints.Accumulated Exchange Target Max" [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Target Bias Limits";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Target Bias Limits";\ DESCRIPTION "These constraints allow a more restricitve limit to be set on Bias (i.e. the limit Mid-C Central would like to remain within under ideal circumstances). These optional constraints operate similarly to the Federal Bias Limits with the exception that the associated Target Max or Target Min slot is referenced. These constraints will only be active for timesteps when a value is specified in the corresponding Target slot. This goal may not be fully satisfied if it is not possible to meet all higher priority goals, such as Non-federal Generation Requests, without utilizing Bias beyond the targets.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Target limits on combined Federal Bias";\ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Bias Target Min", timestep )) THEN\ CONSTRAINT "FederalBias"( timestep ) >= $ "Federal Constraints.Bias Target Min" [timestep];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Bias Target Max", timestep )) THEN\ CONSTRAINT "FederalBias"( timestep ) <= $ "Federal Constraints.Bias Target Max" [timestep];\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Target limits on Grand Coulee Bias";\ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Bias Target Min", timestep )) THEN\ CONSTRAINT $ "Grand Coulee Constraints.Bias" [timestep] >= $ "Grand Coulee Constraints.Bias Target Min" [timestep];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Bias Target Max", timestep )) THEN\ CONSTRAINT $ "Grand Coulee Constraints.Bias" [timestep] <= $ "Grand Coulee Constraints.Bias Target Max" [timestep];\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Target limits on Chief Joseph Bias";\ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Bias Target Min", timestep )) THEN\ CONSTRAINT $ "Chief Joseph Constraints.Bias" [timestep] >= $ "Chief Joseph Constraints.Bias Target Min" [timestep];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Bias Target Max", timestep )) THEN\ CONSTRAINT $ "Chief Joseph Constraints.Bias" [timestep] <= $ "Chief Joseph Constraints.Bias Target Max" [timestep];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Spawning Period Reverse Load Factoring Target Max";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Spawning Period Target Max Flow All Days";\ DESCRIPTION "This goal further constrains Priest Rapids Outflow during the Spawning Period for the purpose of making the resulting PLF for the upcoming Emergence and Rearing Periods as low as possible. It operates similarly to the Spawning Period Flows constraints but attempts to set Priest Rapids flow at the minimum (55 kcfs) during daylight hours for any timesteps when optimization can make this possible after all higher priority constraints have been met. The syntax of the constraint actually requires Priest Rapids Outflow to be less than or equal to the RLF Daylight Min Flow Default. The higher priority Spawning Period Flows constraint will keep the value from being less than the minimum (55 kcfs), so in combination, this is the equivalent of attempting to get as close to 55 kcfs as possible without going below for all daylight timesteps. If the run period is not during the Spawning Period, this constraint will be ignored.

    This goal is based on discussions with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "This lower priority target max is below the Minimize Spill constraints, so it will try to keep flows
    down at this level, but it will not spill (overnight) to do so.";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( @"Start Timestep", @"Finish Timestep" )) DO\ WITH_STATEMENT (NUMERIC targetMax = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= targetMax;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Target Max Flow Day 1";\ DESCRIPTION "This goal further constrains Priest Rapids Outflow during the Spawning Period for the purpose of making the resulting PLF for the upcoming Emergence and Rearing Periods as low as possible. It operates similarly to the Spawning Period Flows constraints but attempts to set Priest Rapids flow at the minimum (55 kcfs) during daylight hours for any timesteps when optimization can make this possible after all higher priority constraints have been met. The syntax of the constraint actually requires Priest Rapids Outflow to be less than or equal to the RLF Daylight Min Flow Default. The higher priority Spawning Period Flows constraint will keep the value from being less than the minimum (55 kcfs), so in combination, this is the equivalent of attempting to get as close to 55 kcfs as possible without going below for all daylight timesteps. If the run period is not during the Spawning Period, this constraint will be ignored.

    This goal is based on discussions with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (DATETIME dayStart = @"Start Timestep") DO\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "This lower priority target max is below the Minimize Spill constraints, so it will try to keep flows
    down at this level, but it will not spill (overnight) to do so.";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC targetMax = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= targetMax;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Target Max Flow Day 2";\ DESCRIPTION "This goal further constrains Priest Rapids Outflow during the Spawning Period for the purpose of making the resulting PLF for the upcoming Emergence and Rearing Periods as low as possible. It operates similarly to the Spawning Period Flows constraints but attempts to set Priest Rapids flow at the minimum (55 kcfs) during daylight hours for any timesteps when optimization can make this possible after all higher priority constraints have been met. The syntax of the constraint actually requires Priest Rapids Outflow to be less than or equal to the RLF Daylight Min Flow Default. The higher priority Spawning Period Flows constraint will keep the value from being less than the minimum (55 kcfs), so in combination, this is the equivalent of attempting to get as close to 55 kcfs as possible without going below for all daylight timesteps. If the run period is not during the Spawning Period, this constraint will be ignored.

    This goal is based on discussions with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 2.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "This lower priority target max is below the Minimize Spill constraints, so it will try to keep flows
    down at this level, but it will not spill (overnight) to do so.";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC targetMax = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= targetMax;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Target Max Flow Day 3";\ DESCRIPTION "This goal further constrains Priest Rapids Outflow during the Spawning Period for the purpose of making the resulting PLF for the upcoming Emergence and Rearing Periods as low as possible. It operates similarly to the Spawning Period Flows constraints but attempts to set Priest Rapids flow at the minimum (55 kcfs) during daylight hours for any timesteps when optimization can make this possible after all higher priority constraints have been met. The syntax of the constraint actually requires Priest Rapids Outflow to be less than or equal to the RLF Daylight Min Flow Default. The higher priority Spawning Period Flows constraint will keep the value from being less than the minimum (55 kcfs), so in combination, this is the equivalent of attempting to get as close to 55 kcfs as possible without going below for all daylight timesteps. If the run period is not during the Spawning Period, this constraint will be ignored.

    This goal is based on discussions with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 3.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "This lower priority target max is below the Minimize Spill constraints, so it will try to keep flows
    down at this level, but it will not spill (overnight) to do so.";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC targetMax = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= targetMax;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Target Max Flow Day 4";\ DESCRIPTION "This goal further constrains Priest Rapids Outflow during the Spawning Period for the purpose of making the resulting PLF for the upcoming Emergence and Rearing Periods as low as possible. It operates similarly to the Spawning Period Flows constraints but attempts to set Priest Rapids flow at the minimum (55 kcfs) during daylight hours for any timesteps when optimization can make this possible after all higher priority constraints have been met. The syntax of the constraint actually requires Priest Rapids Outflow to be less than or equal to the RLF Daylight Min Flow Default. The higher priority Spawning Period Flows constraint will keep the value from being less than the minimum (55 kcfs), so in combination, this is the equivalent of attempting to get as close to 55 kcfs as possible without going below for all daylight timesteps. If the run period is not during the Spawning Period, this constraint will be ignored.

    This goal is based on discussions with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 4.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = "DateMin"( "NextDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"24:00:00" ), @"Finish Timestep" )) DO\ DESCRIPTION "This lower priority target max is below the Minimize Spill constraints, so it will try to keep flows
    down at this level, but it will not spill (overnight) to do so.";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC targetMax = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= targetMax;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Spawning Period Target Max Flow Remaining Days";\ DESCRIPTION "This goal further constrains Priest Rapids Outflow during the Spawning Period for the purpose of making the resulting PLF for the upcoming Emergence and Rearing Periods as low as possible. It operates similarly to the Spawning Period Flows constraints but attempts to set Priest Rapids flow at the minimum (55 kcfs) during daylight hours for any timesteps when optimization can make this possible after all higher priority constraints have been met. The syntax of the constraint actually requires Priest Rapids Outflow to be less than or equal to the RLF Daylight Min Flow Default. The higher priority Spawning Period Flows constraint will keep the value from being less than the minimum (55 kcfs), so in combination, this is the equivalent of attempting to get as close to 55 kcfs as possible without going below for all daylight timesteps. If the run period is not during the Spawning Period, this constraint will be ignored.

    This goal is based on discussions with representatives from Central during meetings at CADSWES, March 8-9, 2011. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC dayNumber = 5.00000000) DO\ WITH_STATEMENT (DATETIME dayStart = "PreviousDate"( @"Start Timestep" + ( dayNumber - 1.00000000 ) * 1.00000000 "day", @"1:00:00" )) DO\ IF_STATEMENT (dayStart <= @"Finish Timestep") THEN\ WITH_STATEMENT (DATETIME dayEnd = @"Finish Timestep") DO\ DESCRIPTION "This lower priority target max is below the Minimize Spill constraints, so it will try to keep flows
    down at this level, but it will not spill (overnight) to do so.";\ FOREACH (DATETIME t IN "SpawningPeriodDaylightHours"( dayStart, dayEnd )) DO\ WITH_STATEMENT (NUMERIC targetMax = IF ( "IsInput"( $ "Vernita Bar Constraints.RLF Daylight Min Flow", t ) )\ THEN\ $ "Vernita Bar Constraints.RLF Daylight Min Flow" [t]\ ELSE\ $ "Vernita Bar Constraints.RLF Daylight Min Flow Default" []\ ENDIF COMMENTED_BY "If the manual Daylight Min is input, use it. Otherwise use the default.") DO\ CONSTRAINT $ "Priest Rapids.Outflow" [t] <= targetMax;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "System Content Targets";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Day 1 0600 Content Target";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (DATETIME t = "NextDate"( @"Start Timestep", @"6:00:00" )) DO\ WITH_STATEMENT (NUMERIC maxContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Max Import", t ) AND $ "Nonfederal Data.Content Target Max Import" [t] <= $ "Nonfederal Data.Content Target Max Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Max Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Max Default" []\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Min Import", t ) AND $ "Nonfederal Data.Content Target Min Import" [t] >= $ "Nonfederal Data.Content Target Min Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Min Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Min Default" []\ ENDIF) DO\ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] <= maxContentTarget;\ \ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] >= minContentTarget;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Day 2 0600 Content Target";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC day = 2.00000000) DO\ WITH_STATEMENT (DATETIME t = "NextDate"( @"Start Timestep" + ( day - 1.00000000 ) * 24.00000000 "hr", @"6:00:00" )) DO\ IF_STATEMENT (t <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC maxContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Max Import", t ) AND $ "Nonfederal Data.Content Target Max Import" [t] <= $ "Nonfederal Data.Content Target Max Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Max Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Max Default" []\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Min Import", t ) AND $ "Nonfederal Data.Content Target Min Import" [t] >= $ "Nonfederal Data.Content Target Min Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Min Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Min Default" []\ ENDIF) DO\ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] <= maxContentTarget;\ \ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] >= minContentTarget;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Day 3 0600 Content Target";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC day = 3.00000000) DO\ WITH_STATEMENT (DATETIME t = "NextDate"( @"Start Timestep" + ( day - 1.00000000 ) * 24.00000000 "hr", @"6:00:00" )) DO\ IF_STATEMENT (t <= @"Finish Timestep") THEN\ WITH_STATEMENT (NUMERIC maxContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Max Import", t ) AND $ "Nonfederal Data.Content Target Max Import" [t] <= $ "Nonfederal Data.Content Target Max Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Max Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Max Default" []\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Min Import", t ) AND $ "Nonfederal Data.Content Target Min Import" [t] >= $ "Nonfederal Data.Content Target Min Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Min Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Min Default" []\ ENDIF) DO\ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] <= maxContentTarget;\ \ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] >= minContentTarget;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Remaining Days 0600 Content Target";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ WITH_STATEMENT (NUMERIC day = 4.00000000) DO\ IF_STATEMENT (@"Start Timestep" + ( day - 1.00000000 ) * 24.00000000 "hr" <= @"Finish Timestep") THEN\ WITH_STATEMENT (LIST daysList = FOR ( DATETIME t IN @"Start Timestep" + ( day - 1.00000000 ) * 24.00000000 "hr" TO @"Finish Timestep" ) WITH LIST result = { } DO\ IF ( t == @"6:00:00" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR) DO\ IF_STATEMENT (daysList != { }) THEN\ FOREACH (DATETIME t IN daysList) DO\ WITH_STATEMENT (NUMERIC maxContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Max Import", t ) AND $ "Nonfederal Data.Content Target Max Import" [t] <= $ "Nonfederal Data.Content Target Max Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Max Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Max Default" []\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minContentTarget = IF ( "IsInput"( $ "Nonfederal Data.Content Target Min Import", t ) AND $ "Nonfederal Data.Content Target Min Import" [t] >= $ "Nonfederal Data.Content Target Min Default" [] )\ THEN\ $ "Nonfederal Data.Content Target Min Import" [t]\ ELSE\ $ "Nonfederal Data.Content Target Min Default" []\ ENDIF) DO\ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] <= maxContentTarget;\ \ CONSTRAINT FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ProjectUsableContent"( res, t )\ ENDFOR / $ "Nonfederal Data.Content Available" [t] >= minContentTarget;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Reshape Bias for HK Objective";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Maximize Weighted HK No Freeze";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ EXPRESSION_OBJECTIVE MAXIMIZE FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) STAT_SUM\ ( $ "Nonfederal Data.HK Shaping Weight" [t] * "SlotFromDataObject"( res, "HK" ) [t] ) - ( "ScalarValueFromDataObject"( res, "HK Estimate Avg" ) COMMENTED_BY "We use a scalar average H/K estimate here rather than a time series to prevent giving incentive
    to spill more during lower H/K (peak load - high flow) periods." * ( res & "Regulated Spill" [t] - "SlotValueFromDataObject"( res, "Spill Required", t ) COMMENTED_BY "Spill Required is calculated in an initialization rule," ) COMMENTED_BY "Only penalize the spill that is beyond required spill." )\ ENDFOR\ ENDFOR;\ \ END;\ \ RULE "Bias Before Reshaping";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Federal Constraints.Bias Before Reshaping" [t] == "OptValue"( $ "Grand Coulee Constraints.Bias", t ) + "OptValue"( $ "Chief Joseph Constraints.Bias", t );\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Reshaped Bias";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ WITH_STATEMENT (LIST newBiasList = "ReshapedBias"( )) DO\ WITH_STATEMENT (LIST timesteps = @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (LIST indices = "GetNumbers"( 0.00000000, ( LENGTH timesteps ) - 1.00000000, 1.00000000 )) DO\ FOREACH (NUMERIC i IN indices) DO\ WITH_STATEMENT (DATETIME t = GET @INDEX i FROM timesteps) DO\ WITH_STATEMENT (NUMERIC biasVal = GET @INDEX i FROM newBiasList) DO\ CONSTRAINT "FederalBias"( t ) == biasVal;\ \ CONSTRAINT $ "Federal Constraints.Bias Reshaped" [t] == biasVal;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Maximize 0600 Storage";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Maximize Nonfed Total Energy Storage First 0600";\ DESCRIPTION "This goal forces water to remain upstream as much as possible and by doing so prevents any excess flow through the system. The Total Energy Storage for each reservoir is the Anticipated Storage multiplied by the sum of its Power Coefficient Approximation and all of the downstream Power Coefficients. This represents the greater energy potential for water the farther upstream that it is. The CumulDownstreamPowerCoeffApprox function calculates this cumulative Power Coefficient for each reservoir. A Maximize objective is used to solve the maximum sum of Total Energy Storage over all timesteps. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (DATETIME t = "NextDate"( @"Start Timestep", @"6:00:00" )) DO\ EXPRESSION_OBJECTIVE MAXIMIZE FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Anticipated Storage" [t] * "CumulDownstreamPowerCoeffApprox"( res, t )\ ENDFOR;\ \ END_WITH_STATEMENT;\ \ FREEZE;\ \ END;\ \ RULE "Maximize Nonfed Total Energy Storage Second 0600";\ DESCRIPTION "This goal forces water to remain upstream as much as possible and by doing so prevents any excess flow through the system. The Total Energy Storage for each reservoir is the Anticipated Storage multiplied by the sum of its Power Coefficient Approximation and all of the downstream Power Coefficients. This represents the greater energy potential for water the farther upstream that it is. The CumulDownstreamPowerCoeffApprox function calculates this cumulative Power Coefficient for each reservoir. A Maximize objective is used to solve the maximum sum of Total Energy Storage over all timesteps. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (DATETIME t = "NextDate"( @"Start Timestep + 24", @"6:00:00" )) DO\ EXPRESSION_OBJECTIVE MAXIMIZE FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Anticipated Storage" [t] * "CumulDownstreamPowerCoeffApprox"( res, t )\ ENDFOR;\ \ END_WITH_STATEMENT;\ \ FREEZE;\ \ END;\ \ RULE "Maximize Nonfed Total Energy Storage Third 0600";\ DESCRIPTION "This goal forces water to remain upstream as much as possible and by doing so prevents any excess flow through the system. The Total Energy Storage for each reservoir is the Anticipated Storage multiplied by the sum of its Power Coefficient Approximation and all of the downstream Power Coefficients. This represents the greater energy potential for water the farther upstream that it is. The CumulDownstreamPowerCoeffApprox function calculates this cumulative Power Coefficient for each reservoir. A Maximize objective is used to solve the maximum sum of Total Energy Storage over all timesteps. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (DATETIME t = "NextDate"( @"Start Timestep + 48", @"6:00:00" )) DO\ EXPRESSION_OBJECTIVE MAXIMIZE FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Anticipated Storage" [t] * "CumulDownstreamPowerCoeffApprox"( res, t )\ ENDFOR;\ \ END_WITH_STATEMENT;\ \ FREEZE;\ \ END;\ \ RULE "Maximize Nonfed Total Energy Storage Final Timestep";\ DESCRIPTION "This goal forces water to remain upstream as much as possible and by doing so prevents any excess flow through the system. The Total Energy Storage for each reservoir is the Anticipated Storage multiplied by the sum of its Power Coefficient Approximation and all of the downstream Power Coefficients. This represents the greater energy potential for water the farther upstream that it is. The CumulDownstreamPowerCoeffApprox function calculates this cumulative Power Coefficient for each reservoir. A Maximize objective is used to solve the maximum sum of Total Energy Storage over all timesteps. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (DATETIME t = @"Finish Timestep") DO\ EXPRESSION_OBJECTIVE MAXIMIZE FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ res & "Anticipated Storage" [t] * "CumulDownstreamPowerCoeffApprox"( res, t )\ ENDFOR;\ \ END_WITH_STATEMENT;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Pool Elevation Ramp Limits";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Pool Elevation Ramp Limit";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT "PoolElevationRampUp"( res, t ) <= "ScalarValueFromDataObject"( res, "Pool Elev Ramp Limit Up" );\ \ CONSTRAINT "PoolElevationRampDown"( res, t ) <= "ScalarValueFromDataObject"( res, "Pool Elev Ramp Limit Down" );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Desired Elevation Table";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Desired Elevation Table";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Pool Elevation" [t] >= "SlotValueFromDataObject"( res, "Desired Elevation Target", t ) - $ "Nonfederal Data.Desired Elevation Tolerance" [];\ \ CONSTRAINT res & "Pool Elevation" [t] <= "SlotValueFromDataObject"( res, "Desired Elevation Target", t ) + $ "Nonfederal Data.Desired Elevation Tolerance" [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Proportional Reservoir Draft Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Proportional Draft Volume Min Max Request Hours";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ENDIF) DO\ DESCRIPTION "Do not apply the constraint unless we are at least seven hours into the run so that it does not
    force extreme operations to get to proprotional draft in a short amount of time if we start
    unbalanced.";\ FOREACH (DATETIME t IN @"Start Timestep + 6" TO @"Finish Timestep") DO\ DESCRIPTION "Check if we are on a max or min request hour, and if so then apply the proportional draft
    constraints.";\ IF_STATEMENT ($ "Nonfederal Data.Peak Valley" [t] > 0.00000000) THEN\ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] >= $ "Nonfederal Data.Draft Percent without RIS" [t];\ \ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] <= $ "Nonfederal Data.Draft Percent without RIS" [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Proportional Draft Volume All Hours with Tolerance - Leave Turned Off";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ENDIF) DO\ DESCRIPTION "Do not apply the constraint unless we are at least seven hours into the run so that it does not
    force extreme operations to get to proprotional draft in a short amount of time if we start
    unbalanced.";\ FOREACH (DATETIME t IN @"Start Timestep + 6" TO @"Finish Timestep") DO\ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] >= $ "Nonfederal Data.Draft Percent without RIS" [t] - $ "Nonfederal Data.Draft Percent Tolerance" [];\ \ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] <= $ "Nonfederal Data.Draft Percent without RIS" [t] + $ "Nonfederal Data.Draft Percent Tolerance" [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Proportional Draft Volume Min Max Request Hours without Priest";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" }\ ENDIF) DO\ DESCRIPTION "Do not apply the constraint unless we are at least seven hours into the run so that it does not
    force extreme operations to get to proprotional draft in a short amount of time if we start
    unbalanced.";\ FOREACH (DATETIME t IN @"Start Timestep + 6" TO @"Finish Timestep") DO\ DESCRIPTION "Check if we are on a max or min request hour, and if so then apply the proportional draft
    constraints.";\ IF_STATEMENT ($ "Nonfederal Data.Peak Valley" [t] > 0.00000000) THEN\ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] >= $ "Nonfederal Data.Draft Percent without RIS" [t];\ \ CONSTRAINT "SlotFromDataObject"( res, "Draft Percent" ) [t] <= $ "Nonfederal Data.Draft Percent without RIS" [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Equal Flows Across Projects";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Equal Flows SummationRewardTable";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Outflow" [t] >= $ "Nonfederal Data.Outflow Average" [t] - $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ CONSTRAINT res & "Outflow" [t] <= $ "Nonfederal Data.Outflow Average" [t] + $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Equal Flows SummationRewardTable WEL and RRH Only";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ IF_STATEMENT (NOT "FourProjectCoordination"( )) THEN\ FOREACH (OBJECT res IN { % "Wells" , % "Rocky Reach" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Outflow" [t] >= $ "Nonfederal Data.Outflow Average" [t] - $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ CONSTRAINT res & "Outflow" [t] <= $ "Nonfederal Data.Outflow Average" [t] + $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Equal Flows SummationRewardTable WEL, RRH, and WAN Only";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Outflow" [t] >= $ "Nonfederal Data.Outflow Average" [t] - $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ CONSTRAINT res & "Outflow" [t] <= $ "Nonfederal Data.Outflow Average" [t] + $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Equal Flows SummationRewardTable WEL, RRH, RIS, and WAN Only";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT res & "Outflow" [t] >= $ "Nonfederal Data.Outflow Average" [t] - $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ CONSTRAINT res & "Outflow" [t] <= $ "Nonfederal Data.Outflow Average" [t] + $ "Nonfederal Data.Equal Flows Tolerance" [];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Outflow Ramp Limits";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Outflow Ramping Limits - Repeaded Maximin All NonFed";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" + 1.00000000 "hr" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ CONSTRAINT "OutflowRampUp"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Up" );\ \ CONSTRAINT "OutflowRampDown"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Down" );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Outflow Ramping Limits - Repeaded Maximin Nonfed wo PRD";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" + 1.00000000 "hr" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ CONSTRAINT "OutflowRampUp"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Up" );\ \ CONSTRAINT "OutflowRampDown"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Down" );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Outflow Ramping Limits - Summation with Reward Table All NonFed";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME timestep IN @"Start Timestep" + 1.00000000 "hr" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ CONSTRAINT "OutflowRampUp"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Up" );\ \ CONSTRAINT "OutflowRampDown"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Down" );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Outflow Ramping Limits - Summation with Reward Table Nonfed wo PRD";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE SUMMATION \ WITH_REWARD_TABLE ($ "Nonfederal Data.Summation Reward Table") DO\ FOREACH (DATETIME timestep IN @"Start Timestep" + 1.00000000 "hr" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }\ ENDIF) DO\ CONSTRAINT "OutflowRampUp"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Up" );\ \ CONSTRAINT "OutflowRampDown"( res, timestep ) <= "ScalarValueFromDataObject"( res, "Outflow Ramp Limit Down" );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_REWARD_TABLE;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Uniform Reservoir Draft Feet";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Uniform Draft Feet";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN IF ( "FourProjectCoordination"( ) )\ THEN\ { % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ELSE\ { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }\ ENDIF) DO\ DESCRIPTION "Do not apply the constraint unless we are at least seven hours into the run so that it does not
    force extreme operations to get to proprotional draft in a short amount of time if we start
    unbalanced.";\ FOREACH (DATETIME t IN @"Start Timestep + 6" TO @"Finish Timestep") DO\ DESCRIPTION "Check if we are on a max or min request hour, and if so then apply the proportional draft
    constraints.";\ IF_STATEMENT ($ "Nonfederal Data.Peak Valley" [t] > 0.00000000) THEN\ CONSTRAINT "SlotFromDataObject"( res, "Draft Feet" ) [t] >= $ "Nonfederal Data.Draft Feet" [t] - $ "Nonfederal Data.Draft Feet Tolerance" [];\ \ CONSTRAINT "SlotFromDataObject"( res, "Draft Feet" ) [t] <= $ "Nonfederal Data.Draft Feet" [t] + $ "Nonfederal Data.Draft Feet Tolerance" [];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "HK Objective";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Maximize Weighted HK";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ EXPRESSION_OBJECTIVE MAXIMIZE FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) STAT_SUM\ ( $ "Nonfederal Data.HK Shaping Weight" [t] * "SlotFromDataObject"( res, "HK" ) [t] ) - ( "ScalarValueFromDataObject"( res, "HK Estimate Avg" ) COMMENTED_BY "We use a scalar average H/K estimate here rather than a time series to prevent giving incentive
    to spill more during lower H/K (peak load - high flow) periods." * ( res & "Regulated Spill" [t] - "SlotValueFromDataObject"( res, "Spill Required", t ) COMMENTED_BY "Spill Required is calculated in an initialization rule," ) COMMENTED_BY "Only penalize the spill that is beyond required spill." )\ ENDFOR\ ENDFOR;\ \ FREEZE;\ \ END;\ \ END;\ \ POLICY_GROUP "Federal Constraints No Longer Used";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Federal Special Operations Min Pool Elevation";\ DESCRIPTION "This goal allows for additional constraints to be set on Pool Elevation for all seven reservoirs for any purpose. Appropriate Elevation Margins for uncertainty are incorporated into the constraints. The Margins are specified differently for the Federal and Non-federal reservoirs, which is the reason for the two differenct forms of the constraints. These constraints will only be active when there is a value in the corresponding Special Operations Min/Max Pool Elevation slot, and that value is more restrictive than the standard License Min/Max Pool Elevation.

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Pool Elevation" ), t )) THEN\ CONSTRAINT res & "Pool Elevation" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Pool Elevation", t ) + ( "ScalarValueFromDataObject"( res, "Pool Elevation Margin" ) + "SlotValueFromDataObject"( res, "Pool Elevation Margin Adjust", t ) );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Min Outflow";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Outflow" ), t )) THEN\ CONSTRAINT res & "Outflow" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Outflow", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Min Spill";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t )) THEN\ CONSTRAINT res & "Spill" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Spill", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Min Turbine Release";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Turbine Release" ), t )) THEN\ CONSTRAINT res & "Turbine Release" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Turbine Release", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Min Generation";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), t )) THEN\ CONSTRAINT res & "Power" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Generation", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Min Tailwater Elev";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Tailwater Elev" ), t )) THEN\ CONSTRAINT res & "Tailwater Elevation" [t] >= "SlotValueFromDataObject"( res, "Special Operations Min Tailwater Elev", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Max Pool Elevation";\ DESCRIPTION "This goal allows for additional constraints to be set on Pool Elevation for all seven reservoirs for any purpose. Appropriate Elevation Margins for uncertainty are incorporated into the constraints. The Margins are specified differently for the Federal and Non-federal reservoirs, which is the reason for the two differenct forms of the constraints. These constraints will only be active when there is a value in the corresponding Special Operations Min/Max Pool Elevation slot, and that value is more restrictive than the standard License Min/Max Pool Elevation.

    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ), t )) THEN\ CONSTRAINT res & "Pool Elevation" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Pool Elevation", t ) - ( "ScalarValueFromDataObject"( res, "Pool Elevation Margin" ) + "SlotValueFromDataObject"( res, "Pool Elevation Margin Adjust", t ) );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Max Outflow";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Outflow" ), t )) THEN\ CONSTRAINT res & "Outflow" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Outflow", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Max Turbine Release";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Turbine Release" ), t )) THEN\ CONSTRAINT res & "Turbine Release" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Turbine Release", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Max Spill";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Spill" ), t )) THEN\ CONSTRAINT res & "Spill" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Spill", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Max Generation";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), t )) THEN\ CONSTRAINT res & "Power" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Generation", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Special Operations Max Tailwater Elev";\ DESCRIPTION "This goal allows for additional constraints to be set on the Maximum Generation for all Non-federal projects for any purpose. Similar constraints for the Federal projects are included in the Federal Min and Max Generation goal at a higher priority. These constraints will only be active when there is a value in the corresponding Special Operations Max Generation slot.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Tailwater Elev" ), t )) THEN\ CONSTRAINT res & "Tailwater Elevation" [t] <= "SlotValueFromDataObject"( res, "Special Operations Max Tailwater Elev", t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Generation Requests";\ DESCRIPTION "This goal constrains Grand Coulee Delivered Energy (a User-defined Variable) to be equal to Grand Coulee Adjusted Request (calculated at the beginning of the run). For Chief Joseph, if it is the CJAD or CJAD II period, Chief Joseph Delivered Energy (a User-defined Variable) must be equal to the value of the function ChiefJosephRevisedRequest. This function converts the Revised Request As Flow set by the CJAD constraints into MWH. If it is not the CJAD period, Chief Joseph Delivered Energy must be equal to Chief Joseph Constraints Adjusted Request. This goal assures that all Federal Requests are met at every time step.

    10/21/2014
    Constraint was revised from:

    REPEATED MAXIMIN
    FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) DO
    ADD CONSTRAINT Grand Coulee Constraints.Delivered Energy [ timestep ] == Grand Coulee
    Constraints.Adjusted Request [ timestep ] IF ( IsCJADPeriod ( timestep ) OR IsCJADIIPeriod (
    timestep ) ) THEN
    ADD CONSTRAINT Chief Joseph Constraints.Delivered Energy [ timestep ] == Chief Joseph
    Constraints.Adjusted Request [ timestep ] ELSE
    ADD CONSTRAINT Chief Joseph Constraints.Delivered Energy [ timestep ] == Chief Joseph
    Constraints.Adjusted Request [ timestep ] END IF
    END FOR
    END MAXIMIN

    Mitch,

    Thank you for the analysis.

    I turned off Goal number 37-PRD Daily Outflow Target and that seemed to solve the Non-fed Request Deviation problem.

    I revised Goal 14-Federal Generation Requests as follows (shown highlighted) Effectively removing the if statement but leaving it in tact:

    RiverWare 6.4.3 Goal: Federal Generation Requests
    Page 1 09:55 January 10, 2014
    Goal:
    Federal Generation Requests
    REPEATED MAXIMIN
    FOR
    DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" DO
    ADD CONSTRAINT
    Grand Coulee Constraints.Delivered Energy timestep == Grand Coulee Constraints.Adjusted Request timestep
    IF
    IsCJADPeriod timestep OR IsCJADIIPeriod timestep THEN
    ADD CONSTRAINT
    Chief Joseph Constraints.Delivered Energy timestep == Chief Joseph Constraints.Adjusted Request timestep
    ELSE
    ADD CONSTRAINT
    Chief Joseph Constraints.Delivered Energy timestep == Chief Joseph Constraints.Adjusted Request timestep
    END IF
    END FOR
    END MAXIMIN

    When I re-ran the model both the Federal and non-federal deviation was zero.

    Do those changes sound good for now with the intent to address them in further in Phase 2?

    Thank you.

    Joe



    From: Mitch Clement [mitch.clement@Colorado.EDU]
    Sent: Thursday, January 09, 2014 11:54 AM
    To: Joe Taylor
    Cc: riverware-support@colorado.edu; Tim Magee
    Subject: Re: Unmet Request


    Joe,
    Here is an update on what I have found.

    There are two separate issues causing the unmet load. The first is the slot that is being used for the Chief Joseph Request during the CJAD period. The second is the constraint we added recently for Priest Rapids Target Daily Outflow.

    In Goal 14: Federal Generation Requests, during the CJAD period, the Chief Joseph Revised Request that is being used is based on the Chief Joseph Initial Uncoordinated Request. The initial request can be modified by the CJAD constraints (Goal 10) to prevent violation of CJAD requirements (thus the name ?Revised Request?), but the main point is that it is not using the Adjusted Request, which we implemented recently in the pre-run expression slots to provide a more realistic Federal Request. Grand Coulee is using the Adjusted Request, so there is a discrepancy in the resulting total federal request that is applied.

    A simple fix for now is to use the Chief Joseph Constraints.Adjusted Request all of the time in the Federal Generation Requests goal. This would assume that the CHJ Forecasted Outflow (input) has already been set to meet all CJAD requirements and would essentially ignore the CJAD constraints that are in the model. In the longer-term, we should revisit the CJAD constraints, now considering the adjusted federal request methodology that we implemented. This might be appropriate work for Phase 2. I think we might be able to simplify the CJAD constraints as well as correct how the Chief Joseph request can be revised during CJAD.

    On the second issue, the Priest Rapids Target Daily Outflow constraint was added at a priority just above the Nonfed Generation Requests goal. On the first day of the run in particular, this limit on PRD Outflow was not allowing enough flow to meet the specified non-fed request. The model I analyzed was from 2:41 p.m. on 1/8. The actual PRD outflows (pre-run inputs) for the first ten hours on 1/8 were fairly high, ~150 kcfs. This forced low PRD outflows for the remaining hours of the day that were in the run period in order to meet the daily flow target. PRD was full at the end of the day (with the uncertainty buffer) indicating that there was no space for additional releases from the upstream projects. I tried reversing the priorities of these two goals. This allowed the non-fed requests to be met fully, but resulted in some unreasonably low flows at PRD at the end of the day and a very large ramp (170 kcfs) to start the next day. I also tried turning off the Priest Rapids Target Daily Outflow goal. Again this results in the non-fed requests being met, but Priest Rapids is not prevented from exceeding its daily flow target. Some more consideration should be given to how the PRD flow target is handled. For now, as a temporary fix, you could turn the goal off. I assume this would provide a more desirable solution than not meeting the generation request.

    Let me know if you have further questions. These are both issues that we should discuss when considering the Phase 2 work.

    Thanks,
    Mitch




    On 1/9/2014 5:19 AM, Joe Taylor wrote:

    Hey Mitch,

    We weren't saving that slot so I had to go back and open previous models to check if it was happening. It was doing it all of yesterday on the NF side and is still doing it on the federal side this morning.

    Thank you.

    Joe



    From: Mitch Clement [mitch.clement@Colorado.EDU]
    Sent: Wednesday, January 08, 2014 4:21 PM
    To: Joe Taylor
    Cc: riverware-support@colorado.edu
    Subject: Re: Unmet Request


    Joe,
    Is it doing this on almost every run, or are there some specific models I should grab from the Mid-C exchange website?

    Thanks,
    Mitch

    On 1/8/2014 4:53 PM, Joe Taylor wrote:

    Mitch,

    Our model is solving with a large deviation between generation and request (approximately 1700 MWh). Could you take a look at the process when you get a chance? Thank you.

    Joe


    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Grand Coulee Constraints.Delivered Energy" [timestep] == $ "Grand Coulee Constraints.Adjusted Request" [timestep];\ \ CONSTRAINT $ "Chief Joseph Constraints.Delivered Energy" [timestep] == $ "Chief Joseph Constraints.Adjusted Request" [timestep];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "No Federal Spill";\ DESCRIPTION "This goal sets Spill at Grand Coulee and Chief Joseph to zero at all timesteps if this can be done based on all higher priority constraints. This prevents the solution from using Federal Spill to meet any lower priority constraints, but it does not prevent Federal Spill if it is required to meet higher priority Federal constraints.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ CONSTRAINT res & "Regulated Spill" [timestep] <= 0.00000000 "kcfs";\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Chief Joseph Elevation Constant";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Chief Joseph.Pool Elevation" [t] == $ "Chief Joseph.Pool Elevation" [@"Start Timestep - 1"];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Chief Joseph within Grand Coulee Flow Tolerance";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This is only implemented provisionally for testing.";\ DERIVED_OBJECTIVE SUMMATION \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Chief Joseph.Outflow" [t] >= $ "Grand Coulee.Outflow" [t] - 20.00000000 "kcfs";\ \ CONSTRAINT $ "Chief Joseph.Outflow" [t] <= $ "Grand Coulee.Outflow" [t] + 20.00000000 "kcfs";\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ RULE "Chief Joseph Anticipated Elevation";\ DESCRIPTION "This goal constrains Chief Joseph Anticipated Storage for the final two timesteps. Anticipated Storage is the reservoir content plus any flow en route to the reservoir at the end of the timestep (i.e. flow that has been released from Grand Coulee but has not yet reached Chief Joseph due to the lag time of 1.75 hours). Conceptually this is the same as constraining Chief Joseph Storage (or Pool Elevation) for the two timesteps after the end of the run. The purpose of this goal is to prevent unreasonable Outflows from Grand Coulee on the final two timesteps of the run. Without these contraints, Grand Coulee could make very large (or very small) releases on the final timesteps, but the effects would never get to Chief Joseph due to the routing lag time.

    The constraint expression subtracts an anticpated outflow volume, based on the CHJ Forecast Outflow, for the timesteps after the run from the Anticipated Storage, so the left-hand-side is effectively
    Storage[t] + Anticipated Inflow[t] - Anticipated Outflow[t]
    This allows the left-hand-side to be constrained by relevant Pool Elevation limits, converted to an equivalent Storage by the ElevationToStorage function. The Elevation Margin is incorporated into the Elevation Limits. If Special Operations Min/Max Pool Elevations are specified, they are used for the limits here. Otherwise the License Min/Max Elevations are used. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Finish Timestep" - 1.00000000 "hr" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Special Operations Max Pool Elevation", timestep )) THEN\ CONSTRAINT $ "Chief Joseph.Anticipated Storage" [timestep] - $ "Chief Joseph Constraints.Discharge Estimate" [timestep] * $ "GCL to CHJ.LagTime" [0.00000000, 0.00000000] <= "ElevationToStorage"( % "Chief Joseph", $ "Chief Joseph Constraints.Special Operations Max Pool Elevation" [timestep] - $ "Chief Joseph Constraints.Pool Elevation Margin" [] - $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [timestep] );\ \ ELSE\ CONSTRAINT $ "Chief Joseph.Anticipated Storage" [timestep] - $ "Chief Joseph Constraints.Discharge Estimate" [timestep] * $ "GCL to CHJ.LagTime" [0.00000000, 0.00000000] <= "ElevationToStorage"( % "Chief Joseph", $ "Chief Joseph Constraints.License Max Pool Elevation" [] - $ "Chief Joseph Constraints.Pool Elevation Margin" [] - $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [timestep] );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Special Operations Min Pool Elevation", timestep )) THEN\ CONSTRAINT $ "Chief Joseph.Anticipated Storage" [timestep] - $ "Chief Joseph Constraints.Discharge Estimate" [timestep] * $ "GCL to CHJ.LagTime" [0.00000000, 0.00000000] >= "ElevationToStorage"( % "Chief Joseph", $ "Chief Joseph Constraints.Special Operations Min Pool Elevation" [timestep] + $ "Chief Joseph Constraints.Pool Elevation Margin" [] + $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [timestep] );\ \ ELSE\ CONSTRAINT $ "Chief Joseph.Anticipated Storage" [timestep] - $ "Chief Joseph Constraints.Discharge Estimate" [timestep] * $ "GCL to CHJ.LagTime" [0.00000000, 0.00000000] >= "ElevationToStorage"( % "Chief Joseph", $ "Chief Joseph Constraints.License Min Pool Elevation" [] + $ "Chief Joseph Constraints.Pool Elevation Margin" [] + $ "Chief Joseph Constraints.Pool Elevation Margin Adjust" [timestep] );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Load Shifting";\ DESCRIPTION "Aniticpated Load Shift represents load shifted from Grand Coulee to Chief Joseph to accommodate additional releases coming out of Grand Coulee when positive Bias is placed on Grand Coulee. This goal constrains the Load Shift so that it is actually based on Bias at Grand Coulee, and load is not shifted arbitrarily. This goal does not represent formal policy, but rather it is a representation of how Mid-C Central expects the Federal projects to operate when Bias is placed on Grand Coulee (based on discriptions provided to CADSWES by Joe Taylor, October, 2013).

    The Anticipated Load Shift is equal to Grand Coulee Bias, lagged according to the routing lag time for the water (1.75 hrs) and multiplied by the ratio of the H/K factor for the two Federal projects. Note that negative Bias will have the opposite effect. Negative Bias will cause load to be shifted from Chief Joseph to Grand Coulee (a negative Anticipated Load Shift).

    Currently the Load Shift for the first two timesteps is zero. This is necessary beacuse Bias is not an input for pre-run timesteps. In order to calculated Anticipated Load Shift, GCL Bias from the previous two timesteps is required, due to the 1.75 hour lag time. Without Bias inputs for the two timesteps before the start of the run, Anticipated Load Shift cannot be calculated for the first two timesteps of the run. Once Bias is included in the pre-run inputs, the special constraint for the first two timesteps can be removed, and the normal form of the constraint can be used for all timesteps in the run.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep + 2" TO @"Finish Timestep") DO\ CONSTRAINT $ "Federal Constraints.Anticipated Load Shift" [timestep] == "GrandCouleeLagged"( $ "Grand Coulee Constraints.Bias", timestep ) * 1.00000000 "hr" * ( $ "Chief Joseph Constraints.Power Coefficient Approximation" [timestep] / $ "Grand Coulee Constraints.Power Coefficient Approximation" [timestep] );\ \ ENDFOREACH;\ \ DESCRIPTION "The calculation of Anticipated Load Shift requires GCL Bias from the previous two timesteps (1.75 hour lag time).
    Bias is not an input for pre-run timesteps, so Anticipated Load Shift cannot be calculated for the first two timesteps.";\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Start Timestep + 1") DO\ CONSTRAINT $ "Federal Constraints.Anticipated Load Shift" [timestep] == 0.00000000 "MWH";\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Deactivated Constraints";\ DESCRIPTION "The goals in this group have been deactivated. They represent actual operating policy; however, in operations they are always implemented through Special Operations slots. They have been left in the Goal Set to be reactivated, if necessary, for planning studies or other types of model uses.";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Chief Joseph Revised Request for CJAD";\ DESCRIPTION "The variable Chief Joseph Revised Request As Flow is defined only for time steps in the CJAD or CJAD II Period. If it is not necessary to increase the Chief Joseph Request to meet CJAD requirements, the Revised Request As Flow will be equal to the Initial Request As Flow, but this definition prevents it from ever being less. Inital Request As Flow is an expression slot that is calculated prior to the run. Revised Request As Flow is referenced in the CJAD constraints and in the Federal Generation Requests constraint.

    The CJAD constraints that reference this variable are based on the Hanford Reach Agreement D.1-7. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsCJADPeriod"( timestep ) OR "IsCJADIIPeriod"( timestep )) THEN\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] >= $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen";\ DESCRIPTION "Grand Coulee Minimum Tailwater Elevation:
    The first set of constraints in this goal constrains Grand Coulee Tailwater Elevation values at every timestep. The first constraint requires the Tailwater Elevation to be greater than or equal to the absolute minimum value (951 ft). This is the least restrictive constraint. Then an IF statement checks if there is a Tailwater Elevation Waiver Value for any timesteps. If there is, it becomes the minimum elevation for those timesteps. Otherwise the following normal constraints will be in effect.

    Grand Coulee Tailwater Maximum 24 Hour and 120 Hour Drawdown:
    The first two normal Grand Coulee Tailwater constraints require the Tailwater Elevation to be no more than 11 ft below the previous 24 hour average and the previous 120 average. These rolling averages are calculated by the Previous24HourAverage and Previous120HourAverage functions.

    Grand Coulee Tailwater Maximum Hourly Drawdown:
    The next three normal constraints limit the hourly Grand Coulee Tailwater Drawdown based on the Tailwater Elevation from the previous timestep. The actual policy contains step constraints with a given allowable hourly drawdown for different ranges of current Tailwater Elevation. Linear approximations of these step constraints are used for Optimization which are slightly more restrictive than or equal to the actual constraints (never less restrictive). The approximated drawdown limits are defined by the functions GCLHourlyDrawdownApproximation1 and GCLHourlyDrawdownApproximation2 with the first calculating the maximum hourly drawdown when the Tailwater Elevation is between 951 and 957 feet and the second when the Tailwater is between 957 and 967 feet. The third constraint references the Maximum Hourly Tailwater Drawdown scalar slot on Grand Coulee Constraints, a value of 5 feet, and is exactly equal to the actual policy for Tailwater Elevations above 967 feet.

    All Grand Coulee Tailwater Elevation constraints are based on the document Mid-Columbia Projects - List of Operating Constraints which references GCL Tailbay Restrictions Operating Order No. 152.

    Grand Coulee Maximum Daily Reservoir Drawdown:
    The next constraint limits the daily drawdown of Grand Coulee Pool Elevation. First an IF statement checks if there is a value in the Pool Elevation Waiver Value slot at each timestep. If so this becomes the minimum Pool Elevation at that timestep. If there is no Waiver Value, the DailyDrawdown function calculates the difference between the Pool Elevation at each timestep and the Pool Elevation from every hour in the 24 hours previous to that timestep. The constraint requires this difference to less than or equal to1.5 feet. This means that the Grand Coulee Pool Elevation can be no more than 1.5 feet lower than the lowest elevation in the previous 24 hours (rolling window). The Previous24HourWindow function creates the list of timesteps against which each Pool Elevation must be checked. This constraint is based on the document Mid-Columbia Projects - List of Operating Constraints which references GCL Forebay Drawdown Operating Order No. 151.

    Chief Joseph Cold Weather Minimum Generation Requirement:
    The last constraint in the goal requires Chief Joseph Power to be greater than or equal to the Cold Weather Min Power (250 MW) during cold weather (defined as 30 degrees F or colder) in order to provide sufficient heat. The constraint references the Temperature Forecast slot on the Chief Joseph Constraints Data Object. The GetActiveTimesteps function checks for timesteps with valid values on this slot. If the Temperature value is less than or equal to 30 degrees, the constraint is active. For any timesteps without a value on the Temperature Forecast slot (displays NaN) or a value greater than 30, the constraint is ignored. This constraint is based on the document Mid-Columbia Projects - List of Operating Constraints. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Grand Coulee Minimum Tailwater Elevation";\ CONSTRAINT $ "Grand Coulee.Tailwater Elevation" [timestep] >= $ "Grand Coulee Constraints.Minimum Tailwater Elevation" [];\ \ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Special Operations Min Tailwater Elev", timestep )) THEN\ CONSTRAINT $ "Grand Coulee.Tailwater Elevation" [timestep] >= $ "Grand Coulee Constraints.Special Operations Min Tailwater Elev" [timestep];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Tailwater Elevation Waiver Value", timestep )) THEN\ CONSTRAINT $ "Grand Coulee.Tailwater Elevation" [timestep] >= $ "Grand Coulee Constraints.Tailwater Elevation Waiver Value" [timestep];\ \ ELSE\ DESCRIPTION "Grand Coulee Tailwater Maximum 24 Hour Drawdown";\ CONSTRAINT $ "Grand Coulee.Tailwater Elevation" [timestep] >= "Previous24HourAverage"( $ "Grand Coulee.Tailwater Elevation", timestep ) - $ "Grand Coulee Constraints.Max 24 Hour Tailwater Drawdown" [];\ \ DESCRIPTION "Grand Coulee Tailwater Maximum 120 Hour Drawdown";\ CONSTRAINT $ "Grand Coulee.Tailwater Elevation" [timestep] >= "Previous120HourAverage"( $ "Grand Coulee.Tailwater Elevation", timestep ) - $ "Grand Coulee Constraints.Max 120 Hour Tailwater Drawdown" [];\ \ DESCRIPTION "Grand Coulee Tailwater Max Hourly Drawdown for Tailwater Elevations 951-957 ft";\ CONSTRAINT "HourlyDecrease"( $ "Grand Coulee.Tailwater Elevation", timestep ) <= "GCLHourlyDrawdownApproximation1"( timestep );\ \ DESCRIPTION "Grand Coulee Tailwater Max Hourly Drawdown for Tailwater Elevations 957-967 ft";\ CONSTRAINT "HourlyDecrease"( $ "Grand Coulee.Tailwater Elevation", timestep ) <= "GCLHourlyDrawdownApproximation2"( timestep );\ \ DESCRIPTION "Grand Coulee Tailwater Max Hourly Drawdown for Tailwater Elevations Above 967 ft";\ CONSTRAINT "HourlyDecrease"( $ "Grand Coulee.Tailwater Elevation", timestep ) <= $ "Grand Coulee Constraints.Maximum Hourly Tailwater Drawdown" [];\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Grand Coulee Maximum Daily Reservoir Drawdown";\ FOREACH (DATETIME previousday IN "Previous24HourWindow"( timestep )) DO\ CONSTRAINT "DailyDrawdown"( $ "Grand Coulee.Pool Elevation", timestep, previousday ) <= $ "Grand Coulee Constraints.Maximum Daily Pool Drawdown" [];\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Special Operations Min Pool Elevation", timestep )) THEN\ CONSTRAINT $ "Grand Coulee.Pool Elevation" [timestep] >= $ "Grand Coulee Constraints.Special Operations Min Pool Elevation" [timestep];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Chief Joseph Cold Weather Minimum Generation Requirement";\ FOREACH (DATETIME coldDays IN "GetActiveTimesteps"( $ "Chief Joseph Constraints.Temperature Forecast" )) DO\ IF_STATEMENT ($ "Chief Joseph Constraints.Temperature Forecast" [coldDays] <= 30.00000000 "F") THEN\ CONSTRAINT $ "Chief Joseph.Power" [coldDays] >= $ "Chief Joseph Constraints.Cold Weather Min Power" [];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Chief Joseph Daily Release";\ DESCRIPTION "This goal constrains Chief Joseph Outflow and requires the average over each calendar day of the combined Chief Joseph total discharge and all Side Inflows to be greater than or equal to 36 kcfs. Side Inflows are forecasted inputs, so only Chief Joseph Outflow can be adjusted. The EndOfDay function creates a list of timesteps at midnight of each day in the run period, so the average is taken once daily at midnight for the previous day. Averages are calculated using the DailyAverage function for Chief Joseph.Outflow which takes an average over the previous 24 hours and the DailyAverageSideflowsDownStreamOfCHJ which averages the six tributary flows over the previous 24 hours. This constraint may be overridden by more restrictive constraints on Chief Joseph Outflow. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO @"Finish Timestep" )) DO\ CONSTRAINT "DailyAverage"( $ "Chief Joseph.Outflow", day ) + "DailyAverageSideflowsDownstreamOfCHJ"( day ) >= $ "Chief Joseph Constraints.Minimum Daily Relsease" [];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Chief Joseph Accumulated Deficiency";\ DESCRIPTION "This goal only forces CJAD repayment when it is beneficial for the solution.";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "CJADPeriod"( ) SET_UNION "CJADIIPeriod"( )) DO\ DESCRIPTION "The Initial Request will only be revised if there is a CJAD exceedence in the pre-run estimate.";\ IF_STATEMENT ($ "Chief Joseph Constraints.CJAD Estimate Prerun" [day] > $ "Chief Joseph Constraints.CJAD Allowable" [day]) THEN\ DESCRIPTION "Check to determine if the normal CJADCalc function would extend back past the start of the run period";\ IF_STATEMENT (day - 24.00000000 "hr" < @"Start Timestep" OR ( day == @"Sunday" AND day - 48.00000000 "hr" < @"Start Timestep" ) OR ( day == @"Monday" AND day - 72.00000000 "hr" < @"Start Timestep" ) OR ( day == @"Tuesday" AND day - 96.00000000 "hr" < @"Start Timestep" ) AND day != @"Wednesday") THEN\ IF_STATEMENT (@"Start Timestep" == @"1:00:00 Monday" OR @"Start Timestep" == @"1:00:00 Tuesday" OR @"Start Timestep" == @"1:00:00 Thursday" OR @"Start Timestep" == @"1:00:00 Friday" OR @"Start Timestep" == @"1:00:00 Saturday") THEN\ IF_STATEMENT ($ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] < 0.00000000 "kcfs-hr") THEN\ CONSTRAINT ( "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", @"Start Timestep", day ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", @"Start Timestep", day ) - "SumSideflowsToVolDownstreamCHJ"( @"Start Timestep", day ) ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( day ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( day ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT (day == @"Thursday" OR day == @"Friday") THEN\ DESCRIPTION "No CJAD is allowed on Thursday or Friday, must meet PLF flows within the day";\ CONSTRAINT "CJADCalcSingleDay"( day ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Saturday" OR day == @"Sunday" OR day == @"Monday" OR day == @"Tuesday") THEN\ DESCRIPTION "The constraint when the first timestep on Saturday is within the run period
    CJAD begins accumulating at this timestep and is checked at the end of each day.";\ CONSTRAINT "CJADCalc"( day ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Wednesday") THEN\ IF_STATEMENT (day - 11.00000000 "hr" > @"Start Timestep" OR ( day - 11.00000000 "hr" == @"Start Timestep" AND $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] < 0.00000000 "kcfs-hr" )) THEN\ DESCRIPTION "The constraint for Wednesday afternoon.
    CJAD in this constraint begins accumulating at noon Wednesday (when it should be zero) and is checked at midnight Wednesday (when it must be zero).";\ CONSTRAINT "CJADCalcWednesday"( day ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( day ) >= $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "The constraints in the "ELSE" are for when there is no pre-run estimated CJAD exceedence.
    They assure that the Chief Joseph Request remains unchanged in this case.";\ IF_STATEMENT (day != @"Wednesday") THEN\ IF_STATEMENT (day - 23.00000000 "hr" >= @"Start Timestep") THEN\ FOREACH (DATETIME timestep IN day - 23.00000000 "hr" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ ELSE\ FOREACH (DATETIME timestep IN @"Start Timestep" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "For Wednesday, this only maintains the Initial Request for the afternoon. The Initial Request for the morning timesteps may still be revised by the constraints below.";\ IF_STATEMENT (day == @"Wednesday") THEN\ IF_STATEMENT (day - 11.00000000 "hr" >= @"Start Timestep") THEN\ FOREACH (DATETIME timestep IN day - 11.00000000 "hr" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ ELSE\ FOREACH (DATETIME timestep IN @"Start Timestep" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Also check CJAD Wednesday at noon";\ FOREACH (DATETIME WedNoon IN "CJADWednesdayNoon"( )) DO\ IF_STATEMENT ($ "Chief Joseph Constraints.CJAD Estimate Prerun" [WedNoon] > $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon]) THEN\ IF_STATEMENT (WedNoon - 108.00000000 "hr" < @"Start Timestep") THEN\ IF_STATEMENT (@"Start Timestep" == @"1:00:00 Wednesday" AND $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] < 0.00000000 "kcfs-hr") THEN\ CONSTRAINT ( "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", @"Start Timestep", WedNoon ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", @"Start Timestep", WedNoon ) - "SumSideflowsToVolDownstreamCHJ"( @"Start Timestep", WedNoon ) ) >= $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon];\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( WedNoon ) >= $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon];\ \ END_IF_STATEMENT;\ \ ELSE\ CONSTRAINT "CJADCalc"( WedNoon ) >= $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT (WedNoon - 11.00000000 "hr" >= @"Start Timestep") THEN\ FOREACH (DATETIME timestep IN WedNoon - 11.00000000 "hr" TO WedNoon) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ ELSE\ FOREACH (DATETIME timestep IN @"Start Timestep" TO WedNoon) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "CJAD Alternative Force Repayment";\ DESCRIPTION "The Chief Joseph Accumulated Deficiency goal does not necessarily force CJAD repayment according to the standard schedule as defined in the Hanford Reach Agreement D.1-7. This goal is in place to allow for the testing of the alternative of explicitly forcing CJAD repayment. This goal should only be on when it is desired to force repayment. Otherwise only the Chief Joseph Accumulated Deficiency goal should be on.

    The logic in this goal is the same as the other Chief Joseph Accumulated Deficiency goal with one exception. If the Pre-run Estimate of CJAD is greater than the Allowable, this goal sets the value of the applicable CJADCalc function equal to the CJAD Allowable for that day (as opposed to greater than or equal to in the other CJAD goal). The CJAD limits and repayment schedule as defined in the Hanford Reach Agreement D.1-7 must be met. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "CJADPeriod"( ) SET_UNION "CJADIIPeriod"( )) DO\ DESCRIPTION "The Initial Request will only be revised if there is a CJAD exceedence in the pre-run estimate.";\ IF_STATEMENT ($ "Chief Joseph Constraints.CJAD Estimate Prerun" [day] > $ "Chief Joseph Constraints.CJAD Allowable" [day]) THEN\ DESCRIPTION "Check to determine if the normal CJADCalc function would extend back past the start of the run period";\ IF_STATEMENT (day - 24.00000000 "hr" < @"Start Timestep" OR ( day == @"Sunday" AND day - 48.00000000 "hr" < @"Start Timestep" ) OR ( day == @"Monday" AND day - 72.00000000 "hr" < @"Start Timestep" ) OR ( day == @"Tuesday" AND day - 96.00000000 "hr" < @"Start Timestep" ) AND day != @"Wednesday") THEN\ IF_STATEMENT (@"Start Timestep" == @"1:00:00 Monday" OR @"Start Timestep" == @"1:00:00 Tuesday" OR @"Start Timestep" == @"1:00:00 Thursday" OR @"Start Timestep" == @"1:00:00 Friday" OR @"Start Timestep" == @"1:00:00 Saturday") THEN\ IF_STATEMENT ($ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] < 0.00000000 "kcfs-hr") THEN\ CONSTRAINT ( "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", @"Start Timestep", day ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", @"Start Timestep", day ) - "SumSideflowsToVolDownstreamCHJ"( @"Start Timestep", day ) ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( day ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( day ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT (day == @"Thursday" OR day == @"Friday") THEN\ DESCRIPTION "No CJAD is allowed on Thursday or Friday, must meet PLF flows within the day";\ CONSTRAINT "CJADCalcSingleDay"( day ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Saturday" OR day == @"Sunday" OR day == @"Monday" OR day == @"Tuesday") THEN\ DESCRIPTION "The constraint when the first timestep on Saturday is within the run period
    CJAD begins accumulating at this timestep and is checked at the end of each day.";\ CONSTRAINT "CJADCalc"( day ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Wednesday") THEN\ IF_STATEMENT (day - 11.00000000 "hr" > @"Start Timestep" OR ( day - 11.00000000 "hr" == @"Start Timestep" AND $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] < 0.00000000 "kcfs-hr" )) THEN\ DESCRIPTION "The constraint for Wednesday afternoon.
    CJAD in this constraint begins accumulating at noon Wednesday (when it should be zero) and is checked at midnight Wednesday (when it must be zero).";\ CONSTRAINT "CJADCalcWednesday"( day ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( day ) == $ "Chief Joseph Constraints.CJAD Allowable" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "The constraints in the "ELSE" are for when there is no pre-run estimated CJAD exceedence.
    They assure that the Chief Joseph Request remains unchanged in this case.";\ IF_STATEMENT (day != @"Wednesday") THEN\ IF_STATEMENT (day - 23.00000000 "hr" >= @"Start Timestep") THEN\ FOREACH (DATETIME timestep IN day - 23.00000000 "hr" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ ELSE\ FOREACH (DATETIME timestep IN @"Start Timestep" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "For Wednesday, this only maintains the Initial Request for the afternoon. The Initial Request for the morning timesteps may still be revised by the constraints below.";\ IF_STATEMENT (day == @"Wednesday") THEN\ IF_STATEMENT (day - 11.00000000 "hr" >= @"Start Timestep") THEN\ FOREACH (DATETIME timestep IN day - 11.00000000 "hr" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ ELSE\ FOREACH (DATETIME timestep IN @"Start Timestep" TO day) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Also check CJAD Wednesday at noon";\ FOREACH (DATETIME WedNoon IN "CJADWednesdayNoon"( )) DO\ IF_STATEMENT ($ "Chief Joseph Constraints.CJAD Estimate Prerun" [WedNoon] > $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon]) THEN\ IF_STATEMENT (WedNoon - 108.00000000 "hr" < @"Start Timestep") THEN\ IF_STATEMENT (@"Start Timestep" == @"1:00:00 Wednesday" AND $ "Chief Joseph Constraints.CJAD Input Prior to Run Period" [@"Start Timestep" - 1.00000000 "hr"] < 0.00000000 "kcfs-hr") THEN\ CONSTRAINT ( "CumulativeFlow"( $ "Vernita Bar Constraints.Protection Level Flow", @"Start Timestep", WedNoon ) - "CumulativeFlow"( $ "Chief Joseph Constraints.Revised Request As Flow", @"Start Timestep", WedNoon ) - "SumSideflowsToVolDownstreamCHJ"( @"Start Timestep", WedNoon ) ) == $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon];\ \ ELSE\ CONSTRAINT "CJADCalcFromStartTimestep"( WedNoon ) == $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon];\ \ END_IF_STATEMENT;\ \ ELSE\ CONSTRAINT "CJADCalc"( WedNoon ) == $ "Chief Joseph Constraints.CJAD Allowable" [WedNoon];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT (WedNoon - 11.00000000 "hr" >= @"Start Timestep") THEN\ FOREACH (DATETIME timestep IN WedNoon - 11.00000000 "hr" TO WedNoon) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ ELSE\ FOREACH (DATETIME timestep IN @"Start Timestep" TO WedNoon) DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "CJAD No Revision of Chief Joseph Request";\ DESCRIPTION "This goal is included to allow for the option of modeling the system with the Chief Joseph Initial Request, whether it meets CJAD conditions or not. The constraint simply sets the Revised Request As Flow equal to the Initial Request as Flow for all timesteps. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ CONSTRAINT $ "Chief Joseph Constraints.Revised Request As Flow" [timestep] == $ "Chief Joseph Constraints.Initial Request As Flow" [timestep];\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "No CJAD, Chief Joseph Meet Daily Protection Level Flow";\ DESCRIPTION "This goal is included to allow for the option of modeling the system with no CJAD. With this goal on, the Chief Joseph daily release plus side inflows must be greater than or equal to the daily Protection Level Flow, even on weekends. ";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "CJADPeriod"( ) SET_UNION "CJADIIPeriod"( )) DO\ CONSTRAINT "DailyTotalFlow"( $ "Chief Joseph.Outflow", day ) + "SumSideflowsToVolDownstreamCHJ"( day - 23.00000000 "hr", day ) >= "DailyTotalFlow"( $ "Vernita Bar Constraints.Protection Level Flow", day );\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Federal Min and Max Generation";\ DESCRIPTION "This goal sets the minimum generation for the two Federal projects whenever a value is specified in the Special Operations Min Generation slot. If no value is specified in the Special Operations slot or if the value is 0 MW, then this constraint will be ignored.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), timestep ) AND "SlotValueFromDataObject"( res, "Special Operations Min Generation", timestep ) > 0.00000000 "MW") THEN\ CONSTRAINT res & "Power" [timestep] >= "SlotValueFromDataObject"( res, "Special Operations Min Generation", timestep );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), timestep )) THEN\ CONSTRAINT res & "Power" [timestep] <= "SlotValueFromDataObject"( res, "Special Operations Max Generation", timestep );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Fish Spill and Bypass OLD with defaults";\ DESCRIPTION "The constraints in this goal model all Fish Spill, Fish Bypass and Fish Ladder policy. Fish Spill flows are modeled by the Reservoir.Regulated Spill slot. Fish Bypass and Fish Ladder flows (Rocky Reach and Rock Island only) are combined and modeled by the Reservoir.Bypass slot.

    For actual operations, the Special Operations Min Spill slot will typically be used to implement Fish Spill requirements. Values set in the Special Operations Min Spill slot will override all other Spill requirements for a given reservoir. For cases when values are not entered in the Special Operations Min Spill slot (such as for a planning study) the following forms of the constraints will be used;

    Wells Fish Spill:
    The first set of constraints is for Wells Fish Spill. The actual Fish Spill through Wells depends on which units are running. This can either be approximated with a percentage of total Outflow or Fish Spill can be set manually for each timestep. The IsActiveSeason function determines if it is the Wells Summer Fish Spill season. If the run period is not in this season, the the Wells constraints will be ignored. It then checks the Wells Constraints.Summer Fish Spill Manual series slot. For any timesteps that have a value in this slot the Regulated Spill will be required to be greater than or equal to this flow value. For any timesteps without a flow value on this slot, the Summer Fish Spill Percent Manual slot will be checked. If it contains a value, Regulated Spill will be required to be greater than or equal to this percentage of Wells.Outflow at every timestep. If there is no value in the Percent Manual slot the Summer Fish Spill Percent Default slot (8%) will be used. Wells Fish Spill constraints are based on an email from Arlen Simon, Douglas County PUD via Joe Taylor, March 9, 2011, and the 8% default value is based on the document Mid-Columbia Projects - List of Operating Constraints as provided to CADSWES by Joe Taylor, October 13, 2011.

    Rocky Reach Fish Spill:
    Rocky Reach has separate constraints for Spring and Summer Fish Spill allowing separate daily fish spill amounts to be set for the two seasons. The spill requirement is a percent of total daily outflow, so the constraint is evaluated only for the midnight timestep of each day during the Fish Spill Season. The IsActiveSeasonEndOfDay function determines if it is midnight in the Fish Spill season. The total Rocky Reach Regulated Spill for the day as calculated by the DailyTotalFlow function is required to be greater than or equal to the value of the DailyFishSpill function. This function calculates a percentage of total daily Outflow using the Rocky Reach Constraints.Spring/Summer Fish Spill Percent Manual scalar slot if it has a value or the Rocky Reach Constraints.Spring/Summer Fish Spill Percent Default if there is no value in the Manual slot.

    Rock Island Fish Spill
    The Rock Island Fish Spill constraints operate the same as the Rocky Reach Fish Spill constraints using the corresponding Rock Island slots.

    Rocky Reach and Rock Island Fish Ladder and Bypass
    Fish Ladder and Fish Bypass flows are combined in the Reservoir.Bypass slot. The Bypass slot for both reservoirs is constrained in this set of constraints to equal the value on the Reservoir Constraints.Fish Ladder slot or Fish Ladder plus Fish Bypass if there is a value on both slots. For any timestep without a value on the Fish Ladder slot (displays NaN) the Bypass for the reservoir is constrained to be 0 kcfs to prevent the optimization from 'cheating' by sending excess spill through the bypass. NOTE: There is no separate Default slot for Fish Ladder or Fish Bypass. The appropriate flow values must be entered on these slots for the constraint to operate.

    All Rocky Reach and Rock Island Fish Spill, Fish Bypass and Fish Ladder constraints are based on the spreadsheets Data for ORNL Model 2-14-2011.xlsx and RR&RI_Historic_Fish_Spill_1995_to_2010.xlsx provided to CADSWES by Chelan County PUD.

    Wanapum and Priest Rapids Fish Spill:
    Wanapum and Priest Rapids have separate constraints for Summer and Fall Fish Spill allowing separate Fish Spill amounts to be set for the two seasons. The IsActiveSeason function determines if it is the Summer/Fall Fish Spill season. If the run period is not in this season, the constraints will be ignored. The Fish Spill constraints require the Reservoir Regulated Spill to be greater than or equal to the flow value from the Summer/Fall Fish Spill Manual slot at all timesteps during the Fish Spill season. If there is no value in the Manual slot, the Default slot will be used. All Wanapum and Priest Rapids Fish Spill constraints are based on the spreadsheet MID-C Operations Annual Timeline 2010-2011.xlsx provided to CADSWES by Grant County PUD. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "Wells Fish Spill";\ IF_STATEMENT ("IsInput"( $ "Wells Constraints.Special Operations Min Spill", timestep )) THEN\ CONSTRAINT $ "Wells.Regulated Spill" [timestep] >= $ "Wells Constraints.Special Operations Min Spill" [timestep];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Wells Constraints.Fish Spill Manual", timestep )) THEN\ CONSTRAINT $ "Wells.Regulated Spill" [timestep] >= $ "Wells Constraints.Fish Spill Manual" [timestep];\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( % "Wells", "Summer Fish Spill Season", timestep )) THEN\ IF_STATEMENT ("IsInput"( $ "Wells Constraints.Summer Fish Spill Manual", timestep )) THEN\ CONSTRAINT $ "Wells.Regulated Spill" [timestep] >= $ "Wells Constraints.Summer Fish Spill Manual" [timestep];\ \ ELSE\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( % "Wells", "Summer Fish Spill Percent Manual" )) THEN\ CONSTRAINT $ "Wells.Regulated Spill" [timestep] >= $ "Wells Constraints.Summer Fish Spill Percent Manual" [] * $ "Wells.Outflow" [timestep];\ \ ELSE\ CONSTRAINT $ "Wells.Regulated Spill" [timestep] >= $ "Wells Constraints.Summer Fish Spill Percent Default" [] * $ "Wells.Outflow" [timestep];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Rocky Reach Fish Spill";\ IF_STATEMENT ("IsInput"( $ "Rocky Reach Constraints.Special Operations Min Spill", timestep )) THEN\ CONSTRAINT $ "Rocky Reach.Regulated Spill" [timestep] >= $ "Rocky Reach Constraints.Special Operations Min Spill" [timestep];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Rocky Reach Constraints.Fish Spill Manual", timestep )) THEN\ CONSTRAINT $ "Rocky Reach.Regulated Spill" [timestep] >= $ "Rocky Reach Constraints.Fish Spill Manual" [timestep];\ \ ELSE\ IF_STATEMENT ("IsActiveSeasonEndOfDay"( % "Rocky Reach", "Spring Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( % "Rocky Reach", "Spring Fish Spill Percent Manual" )) THEN\ CONSTRAINT "DailyTotalFlow"( $ "Rocky Reach.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rocky Reach", "Spring", "Manual", timestep );\ \ ELSE\ CONSTRAINT "DailyTotalFlow"( $ "Rocky Reach.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rocky Reach", "Spring", "Default", timestep );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsActiveSeasonEndOfDay"( % "Rocky Reach", "Summer Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( % "Rocky Reach", "Summer Fish Spill Percent Manual" )) THEN\ CONSTRAINT "DailyTotalFlow"( $ "Rocky Reach.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rocky Reach", "Summer", "Manual", timestep );\ \ ELSE\ CONSTRAINT "DailyTotalFlow"( $ "Rocky Reach.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rocky Reach", "Summer", "Default", timestep );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Rock Island Fish Spill";\ IF_STATEMENT ("IsInput"( $ "Rock Island Constraints.Special Operations Min Spill", timestep )) THEN\ CONSTRAINT $ "Rock Island.Regulated Spill" [timestep] >= $ "Rock Island Constraints.Special Operations Min Spill" [timestep];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Rock Island Constraints.Fish Spill Manual", timestep )) THEN\ CONSTRAINT $ "Rock Island.Regulated Spill" [timestep] >= $ "Rock Island Constraints.Fish Spill Manual" [timestep];\ \ ELSE\ IF_STATEMENT ("IsActiveSeasonEndOfDay"( % "Rock Island", "Spring Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( % "Rock Island", "Spring Fish Spill Percent Manual" )) THEN\ CONSTRAINT "DailyTotalFlow"( $ "Rock Island.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rock Island", "Spring", "Manual", timestep );\ \ ELSE\ CONSTRAINT "DailyTotalFlow"( $ "Rock Island.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rock Island", "Spring", "Default", timestep );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsActiveSeasonEndOfDay"( % "Rock Island", "Summer Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( % "Rock Island", "Summer Fish Spill Percent Manual" )) THEN\ CONSTRAINT "DailyTotalFlow"( $ "Rock Island.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rock Island", "Summer", "Manual", timestep );\ \ ELSE\ CONSTRAINT "DailyTotalFlow"( $ "Rock Island.Regulated Spill", timestep ) >= "DailyFishSpill"( % "Rock Island", "Summer", "Default", timestep );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Rocky Reach and Rock Island Fish Ladder and Fish Bypass";\ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Fish Ladder" ), timestep ) AND "IsInput"( "SlotFromDataObject"( res, "Fish Bypass" ), timestep )) THEN\ CONSTRAINT res & "Bypass" [timestep] == "SlotValueFromDataObject"( res, "Fish Bypass", timestep ) + "SlotValueFromDataObject"( res, "Fish Ladder", timestep );\ \ ELSE\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Fish Ladder" ), timestep )) THEN\ CONSTRAINT res & "Bypass" [timestep] == "SlotValueFromDataObject"( res, "Fish Ladder", timestep );\ \ ELSE\ CONSTRAINT res & "Bypass" [timestep] == 0.00000000 "1000 cfs";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Wanapum Constraints.Special Operations Min Spill", timestep )) THEN\ CONSTRAINT $ "Wanapum.Regulated Spill" [timestep] >= $ "Wanapum Constraints.Special Operations Min Spill" [timestep];\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( % "Wanapum", "Summer Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN $ "Wanapum Constraints.Summer Fish Spill Manual" []) THEN\ CONSTRAINT $ "Wanapum.Regulated Spill" [timestep] >= $ "Wanapum Constraints.Summer Fish Spill Manual" [];\ \ ELSE\ CONSTRAINT $ "Wanapum.Regulated Spill" [timestep] >= $ "Wanapum Constraints.Summer Fish Spill Default" [];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Wanapum and Priest Rapids Fish Spill";\ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), timestep )) THEN\ CONSTRAINT res & "Regulated Spill" [timestep] >= "SlotValueFromDataObject"( res, "Special Operations Min Spill", timestep );\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( res, "Summer Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( res, "Summer Fish Spill Manual" )) THEN\ CONSTRAINT res & "Regulated Spill" [timestep] >= "ScalarValueFromDataObject"( res, "Summer Fish Spill Manual" );\ \ ELSE\ CONSTRAINT res & "Regulated Spill" [timestep] >= "ScalarValueFromDataObject"( res, "Summer Fish Spill Default" );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsActiveSeason"( res, "Fall Fish Spill Season", timestep )) THEN\ IF_STATEMENT (NOT IsNaN "ScalarValueFromDataObject"( res, "Fall Fish Spill Manual" )) THEN\ CONSTRAINT res & "Regulated Spill" [timestep] >= "ScalarValueFromDataObject"( res, "Fall Fish Spill Manual" );\ \ ELSE\ CONSTRAINT res & "Regulated Spill" [timestep] >= "ScalarValueFromDataObject"( res, "Fall Fish Spill Default" );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "No Required Drafting Below FERC Min + 1ft";\ DESCRIPTION "This goal prevents Wells, Rocky Reach, Wanapum and Priest Rapids from being drafted lower than one foot above the License Min Elevation when they would otherwise be forced to by drafting constraints at lower priorities (to make up for CJAD). This constraint is based on the Hanford Reach Agreement D.9: Draft at Mid-Columbia Projects.";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }) DO\ CONSTRAINT res & "Pool Elevation" [timestep] >= "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) + 1.00000000 "ft";\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Priest Rapids Required Drafting1";\ DESCRIPTION "CJAD Drafting for Priest Rapids, Initial 3 ft:
    This constraint forces Priest Rapids to draft its required amount (3 ft from its content at the end of the previous Friday) to account for any deficiencies from Chief Joseph in meeting PLF in accordance with the Hanford Reach Agreement D.6. The constraint is evaluated at midnight on Saturday, Sunday, Monday and Tuesday during the CJAD Period. The CJADPeriod function creates a list of midnight timesteps in the CJAD period. If the required Draft1 Volume is zero, the constraint is ignored (no draft is required). If there is a Required Draft, the DraftVolume function calculates the Draft as the difference in storage (kcfsh) between the beginning of the previous Saturday (when the deficiency could begin) and midnight of the current day. This value is required to be greater than or equal to the Priest Rapids Constraints.CJAD Required Draft1 Volume expression slot which is evaluated at the beginning of the run and converts the required draft in feet of elevation to a volume. Including Monday and Tuesday in this and the following Drafting constraints forces the refill to be carried out in the reverse order of the drafting. Priest Rapds may be drafted further (the Draft2 Volume) by a later constraint if a deficiency still remains after drafting all of the Non-federal reservoirs the required amount.

    These constraints are based on the Hanford Reach Agreement D.6.(a).(i).

    CJAD II Drafting for Priest Rapids and Wanapum Together, Initial 1 ft:
    The constraints for CJAD II Drafting operate similarly to the CJAD Drafting constraints but with the associated CJAD II slots and functions. Also Priest Rapids and Wanapum are combined in this constraint, so the constraint is based on the total volume change for the two reservoirs.

    These CJAD II Drafting constraints are based on the Hanford Reach Agreement D.6.(b).(i). ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "CJAD Drafting for Priest Rapids, Initial 3 ft";\ FOREACH (DATETIME day IN "CJADPeriod"( )) DO\ IF_STATEMENT ($ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 24.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 48.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 72.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 96.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "CJAD II Drafting for Priest Rapids and Wanapum Together, Initial 1 ft";\ FOREACH (DATETIME day IN "CJADIIPeriod"( )) DO\ IF_STATEMENT ($ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 24.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 24.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 48.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 48.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 72.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 72.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 96.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 96.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Wanapum Required Drafting";\ DESCRIPTION "CJAD Drafting for Wanapum, 2 ft
    This goal operates the same as the CJAD Drafting goal for Priest Rapids but with the associated slots for Wanapum. If there is no Draft required downstream of Wanapum (at Priest Rapids), the Wanapum Constraints CJAD Required Draft Volume will be zero, and the constraint will be ignored.

    This goal is based on the Hanford Reach Agreement D.6.(a).(i).

    There are no CJAD II constraints in this goal. The CJAD II Drafting constraints for Wanapum are combined with Priest Rapids. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "CJAD Drafting for Wanapum, 2 ft";\ FOREACH (DATETIME day IN "CJADPeriod"( )) DO\ IF_STATEMENT ($ "Wanapum Constraints.CJAD Required Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Wanapum", day - 24.00000000 "hr", day ) >= $ "Wanapum Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Wanapum", day - 48.00000000 "hr", day ) >= $ "Wanapum Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Wanapum", day - 72.00000000 "hr", day ) >= $ "Wanapum Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Wanapum", day - 96.00000000 "hr", day ) >= $ "Wanapum Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Rocky Reach Required Drafting";\ DESCRIPTION "CJAD Drafting for Rocky Reach, 1 ft:
    This goal operates the same as the CJAD Drafting goal for Priest Rapids but with the associated slots for Rocky Reach. If there is no Draft required downstream of Rocky Reach (all required draft can be met by Wanapum and/or Priest Rapids), the Rocky Reach Constraints.CJAD Required Draft Volume will be zero, and the constraints will be ignored.

    These constraints are based on the Hanford Reach Agreement D.6.(a).(i).

    CJAD II Drafting for Rocky Reach
    The constraints for CJAD II Drafting operate similarly to the CJAD Drafting constraints but with the associated CJAD II slots and functions.

    The CJAD II Drafting constraints are based on the Hanford Reach Agreement D.6.(b).(i). ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "CJAD Drafting for Rocky Reach";\ FOREACH (DATETIME day IN "CJADPeriod"( )) DO\ IF_STATEMENT ($ "Rocky Reach Constraints.CJAD Required Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 24.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 48.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 72.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 96.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "CJAD II Drafting for Rocky Reach";\ FOREACH (DATETIME day IN "CJADIIPeriod"( )) DO\ IF_STATEMENT ($ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 24.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 48.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 72.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Rocky Reach", day - 96.00000000 "hr", day ) >= $ "Rocky Reach Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Wells Required Drafting";\ DESCRIPTION "CJAD Drafting for Wells, 1 ft
    This goal operates the same as the CJAD Drafting goal for Priest Rapids but with the associated slots for Wells. If there is no Draft required downstream of Wells (all required draft is met by Rocky Reach, Wanapum and/or Priest Rapids), the Wells Constraints.CJAD Required Draft Volume will be zero, and the constraints will be ignored.

    These constraints are based on the Hanford Reach Agreement D.6.(a).(i).

    CJAD II Drafting for Wells
    The constraints for CJAD II Drafting operate similarly to the CJAD Drafting constraints but with the associated CJAD II slots and functions.

    The CJAD II Drafting constraints are based on the Hanford Reach Agreement D.6.(b).(i). ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "CJAD Drafting for Wells, 1 ft";\ FOREACH (DATETIME day IN "CJADPeriod"( )) DO\ IF_STATEMENT ($ "Wells Constraints.CJAD Required Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 24.00000000 "hr", day ) >= $ "Wells Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 48.00000000 "hr", day ) >= $ "Wells Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 72.00000000 "hr", day ) >= $ "Wells Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 96.00000000 "hr", day ) >= $ "Wells Constraints.CJAD Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "CJAD II Drafting for Wells";\ FOREACH (DATETIME day IN "CJADIIPeriod"( )) DO\ IF_STATEMENT ($ "Wells Constraints.CJAD II Required Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 24.00000000 "hr", day ) >= $ "Wells Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 48.00000000 "hr", day ) >= $ "Wells Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 72.00000000 "hr", day ) >= $ "Wells Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Wells", day - 96.00000000 "hr", day ) >= $ "Wells Constraints.CJAD II Required Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Priest Rapids Required Drafting2";\ DESCRIPTION "CJAD Drafting for Priest Rapids, 0.7 ft
    This goal forces Priest Rapids to draft its required additional amount (0.7 ft) to account for any deficiencies from Chief Joseph in meeting PLF after all other Non-Federal reservoirs have drafted their required amounts in accordance with the Hanford Reach Agreement D.6. It operates similarly to the other CJAD drafting goals, but the value of the DraftVolume function is required to be greater than or equal to the combined Draft1 Volume (corresponding to 3 ft) and Draft2 Volume (corresponding to 0.7 ft).

    These constraints are based on the Hanford Reach Agreement D.6.(a).(i).

    CJAD II Drafting for Priest Rapids (2.7 ft) and Wanapum (1 ft)
    These constraints for CJAD II Drafting operate similarly to the CJAD Drafting constraints Priest Rapids for the additional 0.7 ft but with the associated CJAD II slots and functions. Also Priest Rapids and Wanapum are combined in this constraint, so the constraint is based on the total volume change for the two reservoirs

    These CJAD II Drafting constraints are based on the Hanford Reach Agreement D.6.(b).(ii). ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "CJAD Drafting for Priest Rapids, 0.7 ft";\ FOREACH (DATETIME day IN "CJADPeriod"( )) DO\ IF_STATEMENT ($ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 24.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 48.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 72.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 96.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "CJAD II Drafting for Priest Rapids (2.7 ft) and Wanapum (1 ft)";\ FOREACH (DATETIME day IN "CJADIIPeriod"( )) DO\ IF_STATEMENT ($ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 24.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 24.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 48.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 48.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 72.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 72.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Priest Rapids", day - 96.00000000 "hr", day ) + "DraftVolume"( % "Wanapum", day - 96.00000000 "hr", day ) >= $ "Priest Rapids Constraints.CJAD II Required Draft1 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft1 Volume" [day] + $ "Priest Rapids Constraints.CJAD II Required Draft2 Volume" [day] + $ "Wanapum Constraints.CJAD II Required Draft2 Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Fed, Nonfed Split Remaining Draft";\ DESCRIPTION "CJAD Split Remaining Draft:
    This goal requires any remaining required draft to be divided 50% to Federal projects and 50% to Non-Federal projects. It operates similarly to the other CJAD drafting constraints. If all of the deficiency can be made up by drafting Non-federal reservoirs up to their specified amounts, the Required Draft Volume for this constraint will be zero, and the constraint will be ignored. If additional drafting is required, the combined Draft Volume from Grand Coulee and Chief Joseph (relative to the content at the end of hte previous Friday) is required to be greater than or equal to the Federal Constraints.CJAD Fed Remaining Draft Volume expression slot. In addition, the sum of the Non-Federal DraftVolume is required to be greater than or equal all previously required draft (from the previous goals, as calculated by the DownstreamDraft function for Chief Joseph), plus the CJAD Nonfed Remaining Draft Volume expression slot on the Priest Rapids Data Object. The Fed and Nonfed Remaining Draft Volume slots should be equal.

    These constraints are based on the Hanford Reach Agreement D.6.(a).(ii).

    CJAD II Split Remaining Draft:
    The CJAD II Split Remaining Draft constraints operate the same as the CJAD Split Remaining Draft constraints but with the corresponding CJAD II slots and functions.

    These CJAD II Drafting constraints are based on the Hanford Reach Agreement D.6.(b).(iv). ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "CJAD Split Remaining Draft";\ FOREACH (DATETIME day IN "CJADPeriod"( )) DO\ IF_STATEMENT ($ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 24.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 24.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 24.00000000 "hr", day )\ ENDFOR >= "DownstreamDraft"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 48.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 48.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 48.00000000 "hr", day )\ ENDFOR >= "DownstreamDraft"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 72.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 72.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 72.00000000 "hr", day )\ ENDFOR >= "DownstreamDraft"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 96.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 96.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 96.00000000 "hr", day )\ ENDFOR >= "DownstreamDraft"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "CJAD II Split Remaining Draft";\ FOREACH (DATETIME day IN "CJADIIPeriod"( )) DO\ IF_STATEMENT ($ "Federal Constraints.CJAD II Fed Remaining Draft Volume" [day] > 0.00000000 "1000 cfs-hr") THEN\ IF_STATEMENT (day == @"Saturday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 24.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 24.00000000 "hr", day ) >= $ "Federal Constraints.CJAD II Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 24.00000000 "hr", day )\ ENDFOR >= "DownstreamDraftCJADII"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD II Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Sunday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 48.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 48.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 48.00000000 "hr", day )\ ENDFOR >= "DownstreamDraftCJADII"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD II Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Monday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 72.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 72.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 72.00000000 "hr", day )\ ENDFOR >= "DownstreamDraftCJADII"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD II Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (day == @"Tuesday") THEN\ CONSTRAINT "DraftVolume"( % "Grand Coulee", day - 96.00000000 "hr", day ) + "DraftVolume"( % "Chief Joseph", day - 96.00000000 "hr", day ) >= $ "Federal Constraints.CJAD Fed Remaining Draft Volume" [day];\ \ CONSTRAINT FOR ( OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" } ) STAT_SUM\ "DraftVolume"( res, day - 96.00000000 "hr", day )\ ENDFOR >= "DownstreamDraftCJADII"( % "Chief Joseph", day ) + $ "Priest Rapids Constraints.CJAD II Nonfed Remaining Draft Volume" [day];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Wells Goose Nesting";\ DESCRIPTION "This goal constrains Wells.Pool Elevation to be greater than or equal to Wells Constraints.Goose Nesting Pool Elevation (775 ft) for any timesteps during the Goose Nesting Season. The ActiveSeason function creates a list of timesteps for the Goose Nesting season by referencing the Wells Constraints.Goose Nesting Season Operations or Default slots. If no timesteps in the run period is are within this season, the constraint is ignored.

    This constraint is based on an email from Arlen Simon, Douglas County PUD via Joe Taylor, March 9, 2011.

    This goal is currently deactivated. The Goose Nesting constraints are implemented thorugh Special Operations slots.";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME gooseNestingDates IN "ActiveSeason"( % "Wells", "Goose Nesting Season" )) DO\ CONSTRAINT $ "Wells.Pool Elevation" [gooseNestingDates] >= $ "Wells Constraints.Goose Nesting Pool Elevation" [] + ( "ScalarValueFromDataObject"( % "Wells", "Pool Elevation Margin" ) + "SlotValueFromDataObject"( % "Wells", "Pool Elevation Margin Adjust", gooseNestingDates ) );\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Priest Rapids Daily Outflow Target";\ DESCRIPTION "The basic form of this constraint, which is in the final ELSE expression, sets the daily average (calendar day) of Priest Rapids Outflow equal to the daily average of the Chief Joseph Forecasted Outflow plus all side inflows as calculated in the Outflow Daily Target Default expression slot. The daily Outflow is allowed to vary from the target within a specified Margin (currently set to 10 kcfs). The alternative forms of the constraint are used if either the Target or the Margin are specified in Special Operations slots. Any values in the Special Operations slots will override the Default values.

    This goal does not represent formal policy. Rather it is based on standard operational practice as described to CADSWES by Joe Taylor (October 15-17, 2013).";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO @"Finish Timestep" )) DO\ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Special Operations Outflow Daily Target", day )) THEN\ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Special Operations Outflow Daily Target Margin", day )) THEN\ DESCRIPTION "If both the Target and Margin values have been input manually in Special Operations slots, use this form.";\ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) >= $ "Priest Rapids Constraints.Special Operations Outflow Daily Target" [day] - $ "Priest Rapids Constraints.Special Operations Outflow Daily Target Margin" [day];\ \ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) <= $ "Priest Rapids Constraints.Special Operations Outflow Daily Target" [day] + $ "Priest Rapids Constraints.Special Operations Outflow Daily Target Margin" [day];\ \ ELSE\ DESCRIPTION "If the Target value has been input manually in the Special Operations slot but the Margin has not been input, use this form.";\ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) >= $ "Priest Rapids Constraints.Special Operations Outflow Daily Target" [day] - $ "Priest Rapids Constraints.Outflow Daily Target Margin Default" [];\ \ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) <= $ "Priest Rapids Constraints.Special Operations Outflow Daily Target" [day] + $ "Priest Rapids Constraints.Outflow Daily Target Margin Default" [];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Special Operations Outflow Daily Target Margin", day )) THEN\ DESCRIPTION "If the Target has not been input manually in the Special Operations slot but the Margin has been input, use this form.";\ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) >= $ "Priest Rapids Constraints.Outflow Daily Target Default" [day] - $ "Priest Rapids Constraints.Special Operations Outflow Daily Target Margin" [day];\ \ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) <= $ "Priest Rapids Constraints.Outflow Daily Target Default" [day] + $ "Priest Rapids Constraints.Special Operations Outflow Daily Target Margin" [day];\ \ ELSE\ DESCRIPTION "If neither the Target nor Margin values have been input manually in Special Operations slots, use this form.";\ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) >= $ "Priest Rapids Constraints.Outflow Daily Target Default" [day] - $ "Priest Rapids Constraints.Outflow Daily Target Margin Default" [];\ \ CONSTRAINT "DailyAverage"( $ "Priest Rapids.Outflow", day ) <= $ "Priest Rapids Constraints.Outflow Daily Target Default" [day] + $ "Priest Rapids Constraints.Outflow Daily Target Margin Default" [];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Special Operations Outflows OLD";\ DESCRIPTION "This goal allows for additional constraints to be set for all seven reservoirs for Max Outflow, Minimum Outflow, Minimum Turbine Release, Maximum Daily Spill, or Minimum Tailwater Elevation for any purpose. These constraints will only be active when there is a value in the corresponding Special Operations slot, and that value is more restrictive than any standard limits on the corresponding variable.
    ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ DESCRIPTION "May need to add equality constraints";\ FOREACH (DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" , % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" , % "Priest Rapids" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Outflow" ), timestep )) THEN\ CONSTRAINT res & "Outflow" [timestep] <= "SlotValueFromDataObject"( res, "Special Operations Max Outflow", timestep );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Tailwater Elev" ), timestep )) THEN\ CONSTRAINT res & "Tailwater Elevation" [timestep] <= "SlotValueFromDataObject"( res, "Special Operations Max Tailwater Elev", timestep );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Turbine Release" ), timestep ) AND "SlotValueFromDataObject"( res, "Special Operations Min Turbine Release", timestep ) > 0.00000000 "kcfs") THEN\ CONSTRAINT res & "Turbine Release" [timestep] >= "SlotValueFromDataObject"( res, "Special Operations Min Turbine Release", timestep );\ \ END_IF_STATEMENT;\ \ DESCRIPTION "";\ FOREACH (DATETIME activeTimestep IN "EndOfDay"( "GetActiveTimesteps"( "SlotFromDataObject"( res, "Special Operations Max Daily Spill" ) ) )) DO\ CONSTRAINT "DailyAverage"( res & "Regulated Spill", activeTimestep ) <= "SlotValueFromDataObject"( res, "Special Operations Max Daily Spill", activeTimestep );\ \ ENDFOREACH;\ \ DESCRIPTION "";\ FOREACH (DATETIME activeTimestep IN "GetActiveTimesteps"( "SlotFromDataObject"( res, "Special Operations Max 24 Hour Spill" ) )) DO\ CONSTRAINT "DailyAverage"( res & "Regulated Spill", activeTimestep ) <= "SlotValueFromDataObject"( res, "Special Operations Max 24 Hour Spill", activeTimestep );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" , % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Outflow" ), timestep ) AND "SlotValueFromDataObject"( res, "Special Operations Min Outflow", timestep ) > 0.00000000 "kcfs") THEN\ CONSTRAINT res & "Outflow" [timestep] >= "SlotValueFromDataObject"( res, "Special Operations Min Outflow", timestep );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Tailwater Elev" ), timestep ) AND "SlotValueFromDataObject"( res, "Special Operations Min Tailwater Elev", timestep ) > "ScalarValueFromDataObject"( "DownstreamRes"( res ), "License Min Pool Elevation" )) THEN\ CONSTRAINT res & "Tailwater Elevation" [timestep] >= "SlotValueFromDataObject"( res, "Special Operations Min Tailwater Elev", timestep );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Special Operations Min Outflow", timestep ) AND $ "Priest Rapids Constraints.Special Operations Min Outflow" [timestep] > $ "Vernita Bar Constraints.Vernita Bar Min Flow" []) THEN\ CONSTRAINT $ "Priest Rapids.Outflow" [timestep] >= $ "Priest Rapids Constraints.Special Operations Min Outflow" [timestep];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.Special Operations Min Tailwater Elev", timestep ) AND $ "Priest Rapids Constraints.Special Operations Min Tailwater Elev" [timestep] > $ "Priest Rapids.Tailwater Table" [0.00000000, 1.00000000]) THEN\ CONSTRAINT $ "Priest Rapids.Tailwater Elevation" [timestep] >= $ "Priest Rapids Constraints.Special Operations Min Tailwater Elev" [timestep];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "Recreation Weekend Pool Elevations";\ DESCRIPTION "This goal allows the Non-Federal reservoirs' Pool Elevations to be constrained to be above a fixed elevation for specified timesteps (Holiday/Recreation Weekends). The RecreationWeekend function checks the Recreation Weekend table slot on each reservoir's Data Object to create a list of timesteps in the run period that are within the Recreation Weekend dates. If there are no dates specified in this table slot, the constraint is ignored. NOTE: There are no default Recreation Weekend dates specified. Dates must be specified manually in the Reservoir Constraints.Recreation Weekend table slot in order for the constraint to be active.

    For any timesteps during a specified Recreation Weekend, Reservoir.Pool Elevation is required to be greater than or equal to the value in the Recreation Weekend Min Elevation scalar slot on each reservoir's Data Object. If a Recreation Weekend is to be modeled, values need to be input manually. These values can subsequently be saved with the model to become the standard Recreation Weekend Min Elevation unless new values are entered.

    This goal is currently deactivated. The Recreation Elevation constraints are implemented thorugh Special Operations slots.";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Rock Island" , % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (DATETIME recWeekend IN "RecreationWeekend"( res )) DO\ CONSTRAINT res & "Pool Elevation" [recWeekend] >= "ScalarValueFromDataObject"( res, "Recreation Weekend Min Elevation" ) + ( "ScalarValueFromDataObject"( res, "Pool Elevation Margin" ) + "SlotValueFromDataObject"( res, "Pool Elevation Margin Adjust", recWeekend ) );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "No Nonfed Spill Reduce Bounds";\ DESCRIPTION "This goal prevents the use of Non-federal Spill to meet lower priority constraints, which are intended to produce a smoother, more desirable Turbine Release schedule. This goal will not always be fully satisfied. For example, Fish Spill at a higher priority will force non-zero Spill during the Fish Spill season. High flow or low load conditions, in which case projects might need to spill to stay within elevation limits, could also cause this goal to not be fully satisfied. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC maxSpill = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Spill", t ) * 2.00000000\ ELSE\ 100.00000000 "kcfs"\ ENDIF) DO\ CONSTRAINT res & "Spill" [t] <= maxSpill;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ RULE "No Nonfed Spill";\ DESCRIPTION "This goal prevents the use of Non-federal Spill to meet lower priority constraints, which are intended to produce a smoother, more desirable Turbine Release schedule. This goal will not always be fully satisfied. For example, Fish Spill at a higher priority will force non-zero Spill during the Fish Spill season. High flow or low load conditions, in which case projects might need to spill to stay within elevation limits, could also cause this goal to not be fully satisfied. ";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DERIVED_OBJECTIVE REPEATED_MINMAX\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC maxSpill = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Spill", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ CONSTRAINT res & "Spill" [t] <= maxSpill;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_DERIVED_OBJECTIVE;\ \ END;\ \ END;\ \ POLICY_GROUP "Optimization Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Optimization Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This goal should always be active, and it should always be at teh bottom of the set.";\ DERIVED_OBJECTIVE SINGLE_MINMAX\ CONSTRAINT $ "Data Validation.Optimization Run Successful" [@"Start Timestep"] == 0.00000000 COMMENTED_BY "Zero indicates success";\ \ END_DERIVED_OBJECTIVE;\ \ FREEZE;\ \ END;\ \ END;\ \ UTILITY_GROUP "Utility Group";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ FUNCTION "Previous8HourWindow" ( DATETIME timestep )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Returns: LIST of 9 timesteps - the argument (current timestep) and the 8 previous timesteps
    Called in:
    - Vernita Bar Protection Level Flows goal: Maximim of 8 consecutive hours below the PLF during PreHatch Period constraint

    The constraint that call this function sums the Vernita Bar flow over these 9 timesteps. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ timestep - 8.00000000 "hr" TO timestep;\ \ END;\ \ FUNCTION "Previous24HourWindow" ( DATETIME timestep )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Returns: LIST of 24 timesteps - the 24 hours prior to (not including) the argument
    Called in:
    -User Defined Variables: Priest Rapids Daily High and Low Flows for Flow Bands goal
    -Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Grand Coulee Maximum Daily Reservoir Drawdown constraint

    This function is used when the value of a slot at the current timestep must be compared to values in a slot over each of the previous 24 hours. In the Priest Rapids Daily High and Low Flows goal the argument when this function is called includes "+ 1 hr"' so that the list of Priest Rapids.Outflow values to which the High and Low Flows are compared includes the timestep being evaluated. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ timestep - 24.00000000 "hr" TO timestep - 1.00000000 "hr";\ \ END;\ \ FUNCTION "Previous24HourAverage" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Returns: NUMERIC - average value for the slot over the previous 24 hours
    Called in:
    - Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Grand Coulee Tailwater Maximum 24 Hour Drawdown

    The function sums the slot values for the previous 24 timesteps then divides by 24. In the Grand Coulee Tailwater constraint, this sets a reference value for the minimum tailwater elevation at the timestep being evaluated. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN timestep - 24.00000000 "hr" TO timestep - 1.00000000 "hr" ) STAT_SUM\ slot [hour]\ ENDFOR / 24.00000000;\ \ END;\ \ FUNCTION "Previous120HourAverage" ( SLOT slot, DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Returns: NUMERIC - average value for the slot over the previous 120 hours
    Called in:
    - Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Grand Coulee Tailwater Maximum 120 Hour Drawdown

    The function sums the slot values for the previous 120 timesteps then divides by 120. In the Grand Coulee Tailwater constraint, this sets a reference value for the minimum Tailwater Elevation at the timestep being evaluated. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME hour IN timestep - 120.00000000 "hr" TO timestep - 1.00000000 "hr" ) STAT_SUM\ slot [hour]\ ENDFOR / 120.00000000;\ \ END;\ \ FUNCTION "GetActiveTimesteps" ( SLOT slotName )\ RETURN_TYPE LIST;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: SLOT - the slot containing the constraint values
    Returns: LIST of timesteps for which the slot contains valid values, the timesteps when the constraint will be active
    Called in:
    -Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Chief Joseph Cold Weather Minimum Generation Requirement constraint
    -Special Operations goals

    This function is used in constraints which are only in effect for timesteps when data has been entered in the slot associated with the constraint. All timesteps without values in the slot are not added to this list and thus the constraint will be ignored for those timesteps. The function goes through each timestep in the run and checks if the slot value at that timestep is NaN. If it is NOT NaN (it does contain a value) the timestep is added to the list of Active Timesteps. If it is NaN (does not contain a value) the list if Active Timesteps is left unchanged. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ FOR ( DATETIME timestep IN @"Start Timestep" TO @"Finish Timestep" ) WITH LIST activeTimesteps = { } DO\ IF ( NOT IsNaN slotName [timestep] )\ THEN\ APPEND timestep ONTO activeTimesteps\ ELSE\ activeTimesteps\ ENDIF\ ENDFOR;\ \ END;\ \ FUNCTION "PRDDailyOutflowDelta" ( DATETIME day )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments: DATETIME - the timestep at which the function is evaluated, the final timestep of each day when the Priest Rapids Flow Bands constraint is in effect
    Returns: NUMERIC - the difference between the highest and lowest Priest Rapids.Outflow values for the past day
    Called in:
    - Priest Rapids Flow Bands goal

    This function calculates the difference between the two User-defined Variables, Priest Rapids Constraints.Daily High Flow and Priest Rapids Constraints.Daily Low Flow. The value returned by this function is what must be less than or equal to the allow Flow Band. The function will be evaluated at final timestep of each day during the Rearing Period and the final timestep of any run during the Rearing Period. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ $ "Priest Rapids Constraints.Daily High Flow" [day] - $ "Priest Rapids Constraints.Daily Low Flow" [day];\ \ END;\ \ FUNCTION "GCLHourlyDrawdownApproximation1" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Returns: NUMERIC - the maximum amount the Grand Coulee Tailwater Elevation can decrease in the current timestep when the Tailwater Elevation for the previous timestep is between 951 and 957 feet.
    Called in:
    - Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Grand Coulee Tailwater Max Hourly Drawdown for Tailwater Elevations 951-957 ft

    This function is one of three that approximates the actual policy for Grand Coulee Hourly Tailwater Drawdown in the document Mid-Columbia Projects - List of Operating Constraints as provided to CADSWES by Joe Taylor, October 13, 2011 which references GCL Tailbay Restrictions Operating Order No. 152. The actual policy allows a drawdown of 2 ft per hour for elevations 951-953 feet and 3 feet per hour for elevations 953-957 feet. The linear relationship defined in this function allows a drawdown of 2 feet per hour for an elevation of 953 feet and 3 feet per hour at 957 feet exactly matching the actual policy at these elevations, and allowable drawdown values less than (more conservative than) the actual policy for all other elevations in this range. For Tailwater Elevations greater than 957 feet, this function will return values greater than the allowable, but these will be overridden by the other two Max Hourly Drawdown constraints which are more restrictive for elevations greater than 957 feet. This function sets the most restrictive value for the 951-957 feet range. The value of the HourlyDecrease function for Grand Coulee Tailwater Elevation must be less than or equal to the value returned by this function at all timesteps.

    This function will be evaluated for every timestep in the run period. It calculates a value from a linear relationship based on the Grand Coulee Tailwater Elevation at the previous timestep. The slope of the line is 0.25 and the intercept is -236.25 feet. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ 0.25000000 * ( $ "Grand Coulee.Tailwater Elevation" [timestep - 1.00000000 "hr"] - 953.00000000 "ft" ) + 2.00000000 "ft";\ \ END;\ \ FUNCTION "GCLHourlyDrawdownApproximation2" ( DATETIME timestep )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Returns: NUMERIC - the maximum amount the Grand Coulee Tailwater Elevation can decrease in the current timestep when the Tailwater Elevation for the previous timestep is between 957 and 967 feet.
    Called in:
    - Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Grand Coulee Tailwater Max Hourly Drawdown for Tailwater Elevations 957-967 ft

    This function operates the same as the GCLHourlyDrawdownApproximation1 function. The value is 3 feet for a Tailwater Elevation of 957 feet, 4 feet for a Tailwater Elevation of 962 feet and 5 feet for a Tailwater Elevation of 967 feet, exactly equaling the actual policy at these elevations. For all other elevations in the 957-967 feet range it evaluates to values less than (more conservative than) the actual policy values. For elevations outside of this range, the values from this function will be overridden by the more restrictive values of the other two Max Hourly Drawdown constraints. This function sets the most restrictive value for the 957-967 feet range. The value of the HourlyDecrease function for Grand Coulee Tailwater Elevation must be less than or equal to the value returned by this function at all timesteps.

    This function will be evaluated for every timestep in the run period. It calculates a value from a linear relationship based on the Grand Coulee Tailwater Elevation at the previous timestep. The slope of the line is 0.2 and the intercept is -188.4 feet. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ 0.20000000 * ( $ "Grand Coulee.Tailwater Elevation" [timestep - 1.00000000 "hr"] - 957.00000000 "ft" ) + 3.00000000 "ft";\ \ END;\ \ FUNCTION "DailyDrawdown" ( SLOT slot, DATETIME timestep, DATETIME previousDay )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    SLOT - the slot referenced by the constraint (typically Grand Coulee.Pool Elevation)
    DATETIME - the timestep being evaluated
    DATETIME - the timestep from the previous day to which the value from the current timestep is being compared.

    Returns: NUMERIC - the difference between the slot value at the previous day timestep and the slot value at the current timestep.
    Called in:
    - Grand Coulee Tailwater, Grand Coulee Drawdown, Chief Joseph Cold Weather Gen goal: Grand Coulee Maximum Daily Reservoir Drawdown constraint

    This function will be evaluated 24 times for every timestep in the run to compare Grand Coulee.Pool Elevation to the Pool Elevation at each of the previous 24 timesteps. The value returned by this function must be less than or equal to Grand Coulee Constraints.Maximum Daily Pool Drawdown (1.5 ft). ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ slot [previousDay] - slot [timestep];\ \ END;\ \ FUNCTION "FishSpill" ( OBJECT res, STRING season, STRING DefaultOrManual )\ RETURN_TYPE NUMERIC;\ SCALE_UNITS "";\ DESCRIPTION "Arguments:
    OBJECT - the reservoir corresponding to the constraint being evaluated (Wanapum or Priest Rapids)
    STRING - the Fish Spill season corresponding to the constraint ("Summer" or "Fall")
    STRING - "Default" or "Manual," referring to which slot will be referenced to obtain the required Fish Spill value

    Returns: NUMERIC - the required minimum Spill for each timestep in the Fish Spill Season
    Called in: - Fish Spill and Bypass goal: Wanapum and Priest Rapids Summer Fish Spill and Wanapum and Priest Rapids Fall Fish Spill constraints

    This function is called by the Fish Spill constraints that require a minimum instantaneous Spill at all times during the Fish Spill Season (Wanapum and Priest Rapids). This function will only be called if there is no value in the reservoir's Special Operations Min Spill slot. This function calls the ScalarValueFromDataObject function to obtain the required Fish Spill value from either the Fish Spill Manual or Default slot for the corresponding constraint. The constraint will have checked for a value in the Manual slot and will tell the function in which slot to look. The Regulated Spill for the reservoir must be greater than or equal to this value for all timesteps during the Fish Spill season. ";\ ACTIVE TRUE;\ PRE_EXEC_DIAG FALSE;\ POST_EXEC_DIAG FALSE;\ NOTES "";\ BEGIN\ \ "ScalarValueFromDataObject"( res, season CONCAT " Fish Spill " CONCAT DefaultOrManual );\ \ END;\ \ END;\ \ END\ } # Section: Optimization Section {Optimization} $ws.RplBasedOptController savePolicyWithModel 1 $ws.RplBasedOptController setParameter {ADVANCE 2} $ws.RplBasedOptController setParameter {SIMPLEX PGRADIENT 4} $ws.RplBasedOptController setParameter {SIMPLEX TOLERANCE FEASIBILITY 1.000000e-009} $ws.RplBasedOptController setParameter {SIMPLEX TOLERANCE MARKOWITZ 5.000000e-001} $ws.RplBasedOptController setParameter {PREPROCESSING AGGREGATOR 10} $ws.RplBasedOptController setParameter {PREPROCESSING DUAL -1} $ws.RplBasedOptController setParameter {PREPROCESSING REDUCE 1} $ws.RplBasedOptController setParameter {TIMELIMIT 3.000000e+003} $ws.RplBasedOptController setParameter {SIMPLEX DISPLAY 0} $ws.RplBasedOptController setParameter {KAPPA 1} $ws.RplBasedOptController setParameter {QUALITY 1} # Section: Simulation Controller Section {Simulation Controller} $ws.SimControl ShouldExecInitRules 1 # Section: Rule Controller Section {Rule Controller} $ws.RuleControl ShouldExecInitRules 1 $ws.RuleControl MaxRuleExecCount 1000 # Section: Initialization Rules Section {Initialization Rules} $ws initRules {RULESET\ NAME "Initialization Rules Set";\ AGENDA_ORDER ASCENDING;\ DESCRIPTION "";\ PRECISION 2;\ NOTES "";\ BEGIN\ \ POLICY_GROUP "Set Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Success Slot";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ $ "Data Validation.Initialization Successful" [] := 0.00000000 COMMENTED_BY "Zero indicates success.";\ \ END;\ \ END;\ \ POLICY_GROUP "Efficiency Objective Estimates";\ DESCRIPTION "";\ ACTIVE FALSE;\ NOTES "";\ BEGIN\ \ RULE "Efficiency Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using a single Efficiency Estimate for the entire run for now, so the series and the
    scalar slots have the same values. At some point we might make use of time varying values in the
    sereis slot.";\ WITH_STATEMENT (NUMERIC powerEstimate = "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, "ScalarValueFromDataObject"( res, "Operating Head Estimate Avg" ), 1.00000000, "ScalarValueFromDataObject"( res, "Turbine Release Estimate Avg" ), 2.00000000, @"Start Timestep" )) DO\ WITH_STATEMENT (NUMERIC efficiencyEstimate = powerEstimate / ( "ScalarValueFromDataObject"( res, "Operating Head Estimate Avg" ) * "ScalarValueFromDataObject"( res, "Turbine Release Estimate Avg" ) * ( $ "Nonfederal Data.Efficiency Conversion Factor" [] COMMENTED_BY "This slot has not units, so we apply the units manually." * ( 1.00000000 "MW" / ( 1.00000000 "ft" * 1.00000000 "kcfs" ) ) ) )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "Efficiency Estimate" ) [t] := efficiencyEstimate;\ \ ENDFOREACH;\ \ "SlotFromDataObject"( res, "Efficiency Estimate Avg" ) [] := efficiencyEstimate;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Set Power LP Param Points";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Power LP Param Line Points";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC minQTFromMinQO = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 30000.00000000 "kcfs" DO\ "Max"( IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Outflow" ), t ) )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Min Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t] < result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Min Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF, 0.00000000 "kcfs" )\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC minQTFromSoftMinQO = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 30000.00000000 "kcfs" DO\ "Max"( IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Outflow" ), t ) )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Soft Min Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t] < result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Min Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF, 0.00000000 "kcfs" )\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC minQTFromSpecialOpsMinQT = "MinItem"( "GetSlotValsNaNToZero"( "SlotFromDataObject"( res, "Special Operations Min Turbine Release" ), @"Start Timestep", @"Finish Timestep" ) )) DO\ WITH_STATEMENT (NUMERIC minQTFromSpecialOpsSoftMinQT = "MinItem"( "GetSlotValsNaNToZero"( "SlotFromDataObject"( res, "Special Operations Soft Min Turbine Release" ), @"Start Timestep", @"Finish Timestep" ) )) DO\ WITH_STATEMENT (NUMERIC minQTFromMinGen = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 30000.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), t ) AND "SlotFromDataObject"( res, "HK Estimate" ) [t] > 0.00000000 "MW/kcfs" )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t] < result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC minQTFromSoftMinGen = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 30000.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Generation" ), t ) AND "SlotFromDataObject"( res, "HK Estimate" ) [t] > 0.00000000 "MW/kcfs" )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Soft Min Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t] < result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Min Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC minQT = "MaxItem"( { minQTFromMinQO , minQTFromSoftMinQO , minQTFromSpecialOpsMinQT , minQTFromSpecialOpsSoftMinQT , minQTFromMinGen , minQTFromSoftMinGen } )) DO\ WITH_STATEMENT (NUMERIC maxQTFromMaxQO = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 0.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Outflow" ), t ) )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Max Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t] > result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 400.00000000 "kcfs"\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC maxQTFromSoftMaxQO = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 0.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Outflow" ), t ) )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Soft Max Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t] > result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Max Outflow" ) [t] - "SlotFromDataObject"( res, "Spill Required" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 400.00000000 "kcfs"\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC maxQTFromSpecialOpsMaxQT = WITH NUMERIC maxQTfromSlot = "MaxItem"( "GetSlotValsNaNToZero"( "SlotFromDataObject"( res, "Special Operations Max Turbine Release" ), @"Start Timestep", @"Finish Timestep" ) ) DO\ IF ( maxQTfromSlot > 0.00000000 "kcfs" )\ THEN\ maxQTfromSlot\ ELSE\ res & "Power LP Param" ["NumRows"( res & "Power LP Param" ) - 2.00000000, 3.00000000]\ ENDIF\ ENDWITH) DO\ WITH_STATEMENT (NUMERIC maxQTFromSpecialOpsSoftMaxQT = WITH NUMERIC maxQTfromSlot = "MaxItem"( "GetSlotValsNaNToZero"( "SlotFromDataObject"( res, "Special Operations Soft Max Turbine Release" ), @"Start Timestep", @"Finish Timestep" ) ) DO\ IF ( maxQTfromSlot > 0.00000000 "kcfs" )\ THEN\ maxQTfromSlot\ ELSE\ res & "Power LP Param" ["NumRows"( res & "Power LP Param" ) - 2.00000000, 3.00000000]\ ENDIF\ ENDWITH) DO\ WITH_STATEMENT (NUMERIC maxQTFromMaxGen = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 0.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), t ) AND "SlotFromDataObject"( res, "HK Estimate" ) [t] > 0.00000000 "MW/kcfs" )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t] > result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 400.00000000 "kcfs"\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC maxQTFromSoftMaxGen = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) WITH NUMERIC result = 0.00000000 "kcfs" DO\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Generation" ), t ) AND "SlotFromDataObject"( res, "HK Estimate" ) [t] > 0.00000000 "MW/kcfs" )\ THEN\ IF ( "SlotFromDataObject"( res, "Special Operations Soft Max Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t] > result )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Max Generation" ) [t] / "SlotFromDataObject"( res, "HK Estimate" ) [t]\ ELSE\ result\ ENDIF\ ELSE\ 400.00000000 "kcfs"\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC maxQT = "MinItem"( { maxQTFromMaxQO , maxQTFromSoftMaxQO , maxQTFromSpecialOpsMaxQT , maxQTFromSpecialOpsSoftMaxQT , maxQTFromMaxGen , maxQTFromSoftMaxGen , res & "Power LP Param" ["NumRows"( res & "Power LP Param" ) - 2.00000000, 3.00000000] } )) DO\ IF_STATEMENT (( maxQT > minQT ) COMMENTED_BY "Are the points strictly increasing?") THEN\ DESCRIPTION "We are OK, no need to make any adjustments";\ res & "Power LP Param" [0.00000000, 2.00000000] := minQT;\ \ res & "Power LP Param" [1.00000000, 2.00000000] := maxQT;\ \ ELSE\ DESCRIPTION "The second point is not larger than the first point.";\ IF_STATEMENT (minQT < 1.00000000 "kcfs") THEN\ DESCRIPTION "minQT is at or near 0. Make the second point slightly larger.";\ res & "Power LP Param" [0.00000000, 2.00000000] := minQT;\ \ res & "Power LP Param" [1.00000000, 2.00000000] := minQT + 1.00000000 "kcfs";\ \ ELSE\ DESCRIPTION "Make the first point slightly smaller than the second point. (We don't want to increase the
    second point because we do not want to go outside the Plant Power Table.)";\ res & "Power LP Param" [0.00000000, 2.00000000] := "Max"( maxQT - 1.00000000 "kcfs", 0.00000000 "kcfs" );\ \ res & "Power LP Param" [1.00000000, 2.00000000] := maxQT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Set Power LP Param Operating Head";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ res & "Power LP Param" [0.00000000, 0.00000000] := "SlotFromDataObject"( res, "Operating Head Estimate Avg" ) [];\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Spill Exchange and Required Spill Initial Updated";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Required Spill Updated";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC fishSpillManual = IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Fish Spill Manual", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC specialOpsSpill = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Spill", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC specialOpsSoftSpill = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Soft Min Spill", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC defaultFishSpill = IF ( ( IsNaN "SlotFromDataObject"( res, "Fish Spill Manual" ) [t] OR "SlotFromDataObject"( res, "Fish Spill Manual" ) [t] == 0.00000000 "kcfs" ) AND ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Default" ), t ) AND "SlotFromDataObject"( res, "Fish Spill Default" ) [t] > 0.00000000 "kcfs" ) )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillExchangeSpill = IF ( res == % "Priest Rapids" )\ THEN\ $ "Priest Rapids Constraints.Spill Exchange Spill" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC requiredSpill = "MaxItem"( { fishSpillManual + spillExchangeSpill , specialOpsSpill , specialOpsSoftSpill , defaultFishSpill + spillExchangeSpill } )) DO\ "SlotFromDataObject"( res, "Spill Required" ) [t] := requiredSpill;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Spill Exchange Spill Updated";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC spillExchange = ( $ "Grand Coulee Constraints.Spill Exchange Energy" [t] + $ "Chief Joseph Constraints.Spill Exchange Energy" [t] ) / 1.00000000 "hr") DO\ WITH_STATEMENT (NUMERIC HK = $ "Priest Rapids Constraints.HK Estimate" [t]) DO\ WITH_STATEMENT (NUMERIC spillExchSpill = IF ( HK > 0.00000000 "MW/kcfs" )\ THEN\ spillExchange / HK\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ $ "Priest Rapids Constraints.Spill Exchange Spill" [t] := spillExchSpill;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Fish Spill Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "WEL Fish Spill Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND NOT "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule sets defalt fish spill values for the case that it is spill season but Fish Spill Manual got imported as zero
    (i.e. Central did not receive a spill signal from Douglas). If it is not fish spill season, these values will be zero. If
    Fish Spill Manual gets imported as something greater than zero, these values will not get used.";\ FOREACH (OBJECT res IN { % "Wells" }) DO\ FOREACH (DATETIME d IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ IF_STATEMENT ("IsActiveSeason"( res, "Summer Fish Spill Season", d )) THEN\ WITH_STATEMENT (NUMERIC outflowEstDayAvg = FOR ( DATETIME t IN "PreviousDate"( d, @"1:00:00" ) TO "NextDate"( d, @"24:00:00" ) ) STAT_AVE\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t]\ ENDFOR) DO\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := outflowEstDayAvg * "SlotFromDataObject"( res, "Summer Fish Spill Default Shape" ) [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := 0.00000000 "kcfs";\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "RRH and RIS Fish Spill Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule sets defalt fish spill values for the case that it is spill season but Fish Spill Manual got
    imported as zero (i.e. Central did not receive a spill signal from Chelan). If it is not fish spill
    season, these values will be zero. If Fish Spill Manual gets imported as something greater than
    zero, these values will not get used.";\ FOREACH (OBJECT res IN { % "Rocky Reach" , % "Rock Island" }) DO\ FOREACH (DATETIME d IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ IF_STATEMENT ("IsActiveSeason"( res, "Spring Fish Spill Season", d )) THEN\ WITH_STATEMENT (NUMERIC outflowEstDayAvg = FOR ( DATETIME t IN "PreviousDate"( d, @"1:00:00" ) TO d ) STAT_AVE\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t]\ ENDFOR) DO\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := outflowEstDayAvg * "SlotFromDataObject"( res, "Spring Fish Spill Default Shape" ) [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ IF_STATEMENT ("IsActiveSeason"( res, "Summer Fish Spill Season", d )) THEN\ WITH_STATEMENT (NUMERIC outflowEstDayAvg = FOR ( DATETIME t IN "PreviousDate"( d, @"1:00:00" ) TO "NextDate"( d, @"24:00:00" ) ) STAT_AVE\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t]\ ENDFOR) DO\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := outflowEstDayAvg * "SlotFromDataObject"( res, "Summer Fish Spill Default Shape" ) [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := 0.00000000 "kcfs";\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "WAN and PRD Fish Spill Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule sets defalt fish spill values for the case that it is spill season but Fish Spill Manual got
    imported as zero (i.e. Central did not receive a spill signal from Grant). If it is not fish spill season,
    these values will be zero. If Fish Spill Manual gets imported as something greater than zero,
    these values will not get used.";\ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC fishSpillDefault = IF ( "IsActiveSeason"( res, "Summer Fish Spill Season", t ) )\ THEN\ "SlotFromDataObject"( res, "Summer Fish Spill Default" ) []\ ELSE\ IF ( "IsActiveSeason"( res, "Fall Fish Spill Season", t ) )\ THEN\ "SlotFromDataObject"( res, "Fall Fish Spill Default" ) []\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := fishSpillDefault;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "HK Objective";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "HK Estimate Avg";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using the Pool Elevation Estimate Avg for now.";\ WITH_STATEMENT (NUMERIC avg = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) STAT_AVE\ "SlotValueFromDataObject"( res, "HK Estimate", t )\ ENDFOR) DO\ "SlotFromDataObject"( res, "HK Estimate Avg" ) [] := avg;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "HK Shaping Weight";\ DESCRIPTION "This slot gets used in the HK Objective to give a higher weight to H/K values at periods of higher generation (i.e. it is more important to maintain high H/K during periods of peak generation). It is roughly representative of the estimated Turibine Release of a single project (allocating Requests evenly based on estimated H/K to give an equal QT to all projects).";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC HKsum = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "SlotValueFromDataObject"( res, "HK Estimate", t )\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC shpaingWeight = IF ( HKsum > 0.00000000 "MW/kcfs" )\ THEN\ ( $ "Requests.Total Nonfed Request" [t] / 1.00000000 "hr" ) / HKsum\ ELSE\ ( $ "Requests.Total Nonfed Request" [t] / 1.00000000 "hr" ) / 1.00000000 "MW/kcfs"\ ENDIF) DO\ $ "Nonfederal Data.HK Shaping Weight" [t] := shpaingWeight;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "HK Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC powerEstimate = "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, "SlotValueFromDataObject"( res, "Operating Head Estimate", t ), 1.00000000, "SlotValueFromDataObject"( res, "Turbine Release Estimate", t ), 2.00000000, @"Start Timestep" )) DO\ WITH_STATEMENT (NUMERIC turbineEstimate = "SlotValueFromDataObject"( res, "Turbine Release Estimate", t )) DO\ WITH_STATEMENT (NUMERIC HKEstimate = IF ( turbineEstimate > 0.00000000 "kcfs" )\ THEN\ powerEstimate / "SlotValueFromDataObject"( res, "Turbine Release Estimate", t )\ ELSE\ 0.00000000 "MW/kcfs"\ ENDIF) DO\ "SlotFromDataObject"( res, "HK Estimate" ) [t] := HKEstimate;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Populate HK Table";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC maxRelease = "GetMaxReleaseGivenInflow"( res, 50.00000000 "kcfs", @"Start Timestep" ) COMMENTED_BY "This is only to force the population of the Auto Max Turbine Q table so that
    we can reference it in a later step. We are not actually doing anything with
    this value.") DO\ FOREACH (NUMERIC OHRow IN "GetNumbers"( 0.00000000, "ScalarValueFromDataObject"( res, "HK Operating Head Count" ) - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (NUMERIC OH = "SlotFromDataObject"( res, "HK Table Operating Head" ) [OHRow, 0.00000000]) DO\ FOREACH (NUMERIC QTColumn IN "GetNumbers"( 0.00000000, "ScalarValueFromDataObject"( res, "HK Turbine Release Count" ) - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (NUMERIC QT = "SlotFromDataObject"( res, "HK Table Turbine Release" ) [QTColumn, 0.00000000]) DO\ WITH_STATEMENT (BOOLEAN calcPoint = ( QT <= "TableInterpolation"( res & "Auto Max Turbine Q", 0.00000000, 1.00000000, OH, @"Start Timestep" ) ) COMMENTED_BY "Check if this is actually a valid point in the Plant Power Table") DO\ WITH_STATEMENT (NUMERIC HK = IF ( calcPoint AND QT > 0.00000000 "kcfs" )\ THEN\ ( "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, OH, 1.00000000, QT, 2.00000000, @"Start Timestep" ) / QT ) COMMENTED_BY "If it is a valid point, go ahead and set the appropriate HK value"\ ELSE\ 0.00000000 "MW/kcfs" COMMENTED_BY "If it is not a valid point, just fill the HK value in with 0 MW/kcfs"\ ENDIF) DO\ "SlotFromDataObject"( res, "HK Table" ) [OHRow, QTColumn] := HK;\ \ WITH_STATEMENT (NUMERIC HK3DTableRow = OHRow * "ScalarValueFromDataObject"( res, "HK Turbine Release Count" ) + QTColumn) DO\ "SlotFromDataObject"( res, "HK Table 3D" ) [HK3DTableRow, 0.00000000] := OH;\ \ "SlotFromDataObject"( res, "HK Table 3D" ) [HK3DTableRow, 1.00000000] := QT;\ \ "SlotFromDataObject"( res, "HK Table 3D" ) [HK3DTableRow, 2.00000000] := HK;\ \ IF_STATEMENT (NOT calcPoint) THEN\ DESCRIPTION "If it is not a valid point, go ahead and set the corresponding weight variable
    to 0 for all timesteps so that it will not try to use this point";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "HKWeight_" CONCAT "IntegerToString"( HK3DTableRow ) ) [t] := 0.00000000;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Populate HK Table 3D from Input Table";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC numOH = "ScalarValueFromDataObject"( res, "HK Operating Head Count" )) DO\ WITH_STATEMENT (NUMERIC numQT = "ScalarValueFromDataObject"( res, "HK Turbine Release Count" )) DO\ IF_STATEMENT (( "NumRows"( "SlotFromDataObject"( res, "HK Table" ) ) == numOH AND "NumColumns"( "SlotFromDataObject"( res, "HK Table" ) ) == numQT ) COMMENTED_BY "Check that the dimiensions of the input tables match") THEN\ WITH_STATEMENT (NUMERIC maxRelease = "GetMaxReleaseGivenInflow"( res, 50.00000000 "kcfs", @"Start Timestep" ) COMMENTED_BY "This is only to force the population of the Auto Max Turbine Q table so that
    we can reference it in a later step. We are not actually doing anything with
    this value.") DO\ FOREACH (NUMERIC OHRow IN "GetNumbers"( 0.00000000, numOH - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (NUMERIC OH = "SlotFromDataObject"( res, "HK Table Operating Head" ) [OHRow, 0.00000000]) DO\ FOREACH (NUMERIC QTColumn IN "GetNumbers"( 0.00000000, numQT - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (NUMERIC QT = "SlotFromDataObject"( res, "HK Table Turbine Release" ) [QTColumn, 0.00000000]) DO\ WITH_STATEMENT (NUMERIC HK = "SlotFromDataObject"( res, "HK Table" ) [OHRow, QTColumn]) DO\ WITH_STATEMENT (BOOLEAN usePoint = ( HK > 0.00000000 "MW/kcfs" AND ( QT <= "TableInterpolation"( res & "Auto Max Turbine Q", 0.00000000, 1.00000000, OH, @"Start Timestep" ) ) ) COMMENTED_BY "Check if this is actually a valid point in the Plant Power Table") DO\ WITH_STATEMENT (NUMERIC HK3DTableRow = OHRow * "ScalarValueFromDataObject"( res, "HK Turbine Release Count" ) + QTColumn) DO\ "SlotFromDataObject"( res, "HK Table 3D" ) [HK3DTableRow, 0.00000000] := OH;\ \ "SlotFromDataObject"( res, "HK Table 3D" ) [HK3DTableRow, 1.00000000] := QT;\ \ "SlotFromDataObject"( res, "HK Table 3D" ) [HK3DTableRow, 2.00000000] := HK;\ \ IF_STATEMENT (NOT usePoint) THEN\ DESCRIPTION "If it is not a valid point, go ahead and set the corresponding weight variable
    to 0 for all timesteps so that it will not try to use this point";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "HKWeight_" CONCAT "IntegerToString"( HK3DTableRow ) ) [t] := 0.00000000;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ IF_STATEMENT ("NumRows"( "SlotFromDataObject"( res, "HK Table" ) ) != numOH) THEN\ STOP_RUN_STATEMENT "The number of rows in the table slot " CONCAT "SlotFromDataObject"( res, "HK Table" ) CONCAT " does not match the number of Operating Head values in " CONCAT "SlotFromDataObject"( res, "HK Table Operating Head" );\ \ ELSE\ IF_STATEMENT ("NumColumns"( "SlotFromDataObject"( res, "HK Table" ) ) != numQT) THEN\ STOP_RUN_STATEMENT "The number of columns in the table slot " CONCAT "SlotFromDataObject"( res, "HK Table" ) CONCAT " does not match the number of Turbine Release values in " CONCAT "SlotFromDataObject"( res, "HK Table Turbine Release" );\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Number of Rows and Columns in HK Table";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC numOH = "NumRows"( "SlotFromDataObject"( res, "HK Table Operating Head" ) )) DO\ WITH_STATEMENT (NUMERIC numQT = "NumRows"( "SlotFromDataObject"( res, "HK Table Turbine Release" ) )) DO\ WITH_STATEMENT (NUMERIC numHK = numOH * numQT) DO\ "SlotFromDataObject"( res, "HK Operating Head Count" ) [] := numOH;\ \ "SlotFromDataObject"( res, "HK Turbine Release Count" ) [] := numQT;\ \ "SlotFromDataObject"( res, "HK Count" ) [] := numHK;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Pre-Run Estimates";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Turbine Release Estimate Avg";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using the Turbine Release Estimate Avg for now.";\ WITH_STATEMENT (NUMERIC avg = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) STAT_AVE\ "SlotValueFromDataObject"( res, "Turbine Release Estimate", t )\ ENDFOR) DO\ "SlotFromDataObject"( res, "Turbine Release Estimate Avg" ) [] := avg;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Operating Head Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using a single Operating Head Estimate forthe entire run for now, so the series and
    the scalar slots have the same values. At some point we might make use of time varying values in
    the sereis slot.";\ WITH_STATEMENT (NUMERIC OHEstimate = "ScalarValueFromDataObject"( res, "Pool Elevation Estimate Avg" ) - "ScalarValueFromDataObject"( res, "Tailwater Estimate Avg" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "Operating Head Estimate" ) [t] := OHEstimate;\ \ ENDFOREACH;\ \ "SlotFromDataObject"( res, "Operating Head Estimate Avg" ) [] := OHEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Tailwater Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using the Tailwater Estimate Avg for now, so the series and the scalar slots have the
    same values. At some point we might make use of time varying values in the sereis slot.";\ WITH_STATEMENT (NUMERIC outflowEstimate = "ScalarValueFromDataObject"( res, "Outflow Estimate Avg" )) DO\ WITH_STATEMENT (NUMERIC baseValue = IF ( res == % "Priest Rapids" )\ THEN\ 0.00000000 "ft" COMMENTED_BY "Priest Rapids does not use a Base Value. Tailwater is only a function of Outflow."\ ELSE\ "ScalarValueFromDataObject"( "DownstreamRes"( res ), "Pool Elevation Estimate Avg" )\ ENDIF) DO\ IF_STATEMENT (res == % "Rocky Reach" OR res == % "Priest Rapids") THEN\ DESCRIPTION "Rocky Reach and Priest Rapids use the Base Value Plus Lookup Table method for Tailwater.";\ WITH_STATEMENT (NUMERIC tw = "TableInterpolation"( res & "Tailwater Table", 0.00000000, 1.00000000, outflowEstimate, @"Start Timestep" ) + baseValue) DO\ "SlotFromDataObject"( res, "Tailwater Estimate Avg" ) [] := tw;\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "Tailwater Estimate" ) [t] := tw;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "The other projects use the Stage Flow Lookup Table method for Tailwater.";\ WITH_STATEMENT (NUMERIC tw = "TableInterpolation3D"( res & "Stage Flow Tailwater Table", 0.00000000, outflowEstimate, 1.00000000, baseValue, 2.00000000, @"Start Timestep" )) DO\ "SlotFromDataObject"( res, "Tailwater Estimate Avg" ) [] := tw;\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "Tailwater Estimate" ) [t] := tw;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Outflow Estimate Avg";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (NUMERIC avg = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) STAT_AVE\ "SlotValueFromDataObject"( res, "Outflow Estimate", t )\ ENDFOR) DO\ "SlotFromDataObject"( res, "Outflow Estimate Avg" ) [] := avg;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Priest Rapids Outflow Estimate Check for Pool Elevation Margin";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Start Timestep + 12") DO\ IF_STATEMENT (( "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] OR ( t > @"Start Timestep" AND "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] ) ) COMMENTED_BY "This is an indication that we are starting above the Margin, and thus we need higher outflows to
    get within the normal margin.") THEN\ WITH_STATEMENT (NUMERIC QOUpdated = ( "ElevationToStorage"( res, IF ( t == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [t - 1.00000000 "hr"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t - 1.00000000 "hr"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"]\ ENDIF ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] ) ) / 1.00000000 "hr" + "SlotFromDataObject"( res, "Inflow Estimate" ) [t]) DO\ IF_STATEMENT (QOUpdated > "SlotFromDataObject"( res, "Outflow Estimate" ) [t]) THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := QOUpdated;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Priest Rapids Inflow Estimate Update";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC inflowEstimate = "InflowEstimateUsingUpstreamOutflowEstimate"( res, t )) DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Wanapum Outflow Estimate Check for Pool Elevation Margin";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Wanapum" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Start Timestep + 12") DO\ IF_STATEMENT (( "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] OR ( t > @"Start Timestep" AND "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] ) ) COMMENTED_BY "This is an indication that we are starting above the Margin, and thus we need higher outflows to
    get within the normal margin.") THEN\ WITH_STATEMENT (NUMERIC QOUpdated = ( "ElevationToStorage"( res, IF ( t == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [t - 1.00000000 "hr"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t - 1.00000000 "hr"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"]\ ENDIF ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] ) ) / 1.00000000 "hr" + "SlotFromDataObject"( res, "Inflow Estimate" ) [t]) DO\ IF_STATEMENT (QOUpdated > "SlotFromDataObject"( res, "Outflow Estimate" ) [t]) THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := QOUpdated;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Wanapum Inflow Estimate Update";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Wanapum" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC inflowEstimate = "InflowEstimateUsingUpstreamOutflowEstimate"( res, t )) DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Rock Island Outflow Estimate Check for Pool Elevation Margin";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Rock Island" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Start Timestep + 12") DO\ IF_STATEMENT (( "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] OR ( t > @"Start Timestep" AND "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] ) ) COMMENTED_BY "This is an indication that we are starting above the Margin, and thus we need higher outflows to
    get within the normal margin.") THEN\ WITH_STATEMENT (NUMERIC QOUpdated = ( "ElevationToStorage"( res, IF ( t == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [t - 1.00000000 "hr"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t - 1.00000000 "hr"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"]\ ENDIF ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] ) ) / 1.00000000 "hr" + "SlotFromDataObject"( res, "Inflow Estimate" ) [t]) DO\ IF_STATEMENT (QOUpdated > "SlotFromDataObject"( res, "Outflow Estimate" ) [t]) THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := QOUpdated;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Rock Island Inflow Estimate Update";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Rock Island" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC inflowEstimate = "InflowEstimateUsingUpstreamOutflowEstimate"( res, t )) DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Rocky Reach Outflow Estimate Check for Pool Elevation Margin";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Rocky Reach" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Start Timestep + 12") DO\ IF_STATEMENT (( "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] OR ( t > @"Start Timestep" AND "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] ) ) COMMENTED_BY "This is an indication that we are starting above the Margin, and thus we need higher outflows to
    get within the normal margin.") THEN\ WITH_STATEMENT (NUMERIC QOUpdated = ( "ElevationToStorage"( res, IF ( t == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [t - 1.00000000 "hr"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t - 1.00000000 "hr"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"]\ ENDIF ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] ) ) / 1.00000000 "hr" + "SlotFromDataObject"( res, "Inflow Estimate" ) [t]) DO\ IF_STATEMENT (QOUpdated > "SlotFromDataObject"( res, "Outflow Estimate" ) [t]) THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := QOUpdated;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Rocky Reach Inflow Estimate Update";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Rocky Reach" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC inflowEstimate = "InflowEstimateUsingUpstreamOutflowEstimate"( res, t )) DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Wells Outflow Estimate Check for Pool Elevation Margin";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND NOT "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Wells" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Start Timestep + 12") DO\ IF_STATEMENT (( "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] OR ( t > @"Start Timestep" AND "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"] < "SlotFromDataObject"( res, "Pool Elevation Max Margin Default" ) [] ) ) COMMENTED_BY "This is an indication that we are starting above the Margin, and thus we need higher outflows to
    get within the normal margin.") THEN\ WITH_STATEMENT (NUMERIC QOUpdated = ( "ElevationToStorage"( res, IF ( t == @"Start Timestep" )\ THEN\ res & "Pool Elevation" [t - 1.00000000 "hr"]\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t - 1.00000000 "hr"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t - 1.00000000 "hr"]\ ENDIF ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] ) ) / 1.00000000 "hr" + "SlotFromDataObject"( res, "Inflow Estimate" ) [t]) DO\ IF_STATEMENT (QOUpdated > "SlotFromDataObject"( res, "Outflow Estimate" ) [t]) THEN\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := QOUpdated;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Outflow Estimate PreRun Set to Observed";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep - 24" TO @"Start Timestep - 1") DO\ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := res & "Outflow" [t];\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Turbine Release and Outflow Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (LIST days = FOR ( DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) ) WITH LIST result = { } DO\ IF ( t == @"24:00:00" AND t > @"Start Timestep" + 12.00000000 "hr" )\ THEN\ APPEND t ONTO result\ ELSE\ result\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (LIST dayIndices = "GetNumbers"( 0.00000000, ( LENGTH days ) - 1.00000000, 1.00000000 )) DO\ FOREACH (NUMERIC i IN dayIndices) DO\ WITH_STATEMENT (DATETIME end = GET @INDEX i FROM days) DO\ WITH_STATEMENT (DATETIME start = IF ( i == 0.00000000 )\ THEN\ @"Start Timestep"\ ELSE\ "PreviousDate"( end, @"1:00:00" )\ ENDIF) DO\ WITH_STATEMENT (LIST dayTimesteps = start TO end) DO\ WITH_STATEMENT (NUMERIC minOutVol = "QOMinVolumeEstimateInitial"( res, start, end )) DO\ WITH_STATEMENT (NUMERIC OHAvg = "OHAVgEstimateInitial"( res, minOutVol, start, end )) DO\ WITH_STATEMENT (NUMERIC maxQTVol = "QTMaxVolumeEstimateGivenOHAvg"( res, OHAvg, start, end )) DO\ WITH_STATEMENT (NUMERIC minOutAvg = minOutVol / ( end - start + 1.00000000 "hr" )) DO\ WITH_STATEMENT (NUMERIC requiredSpillVol = ( FOR ( DATETIME t IN dayTimesteps ) STAT_SUM\ "RequiredSpillEstimateGivenOutflowEstimate"( res, minOutAvg, t )\ ENDFOR * 1.00000000 "hr" ) COMMENTED_BY "Required Fish Spill") DO\ WITH_STATEMENT (NUMERIC minQSVol = "MaxItem"( { requiredSpillVol , minOutVol - maxQTVol } )) DO\ IF_STATEMENT (minQSVol > requiredSpillVol) THEN\ WITH_STATEMENT (LIST QTVals = FOR ( DATETIME t IN dayTimesteps ) WITH LIST result = { } DO\ APPEND "QTMaxEstimateGivenOHAvg"( res, OHAvg, t ) ONTO result\ ENDFOR) DO\ WITH_STATEMENT (LIST QSVals = WITH NUMERIC minQSAvg = minQSVol / ( end - start + 1.00000000 "hr" ) DO\ FOR ( DATETIME t IN dayTimesteps ) WITH LIST result = { } DO\ APPEND "Max"( minQSAvg, "RequiredSpillEstimateGivenOutflowEstimate"( res, minOutAvg, t ) ) ONTO result\ ENDFOR\ ENDWITH) DO\ FOREACH (NUMERIC i IN "GetNumbers"( 0.00000000, ( LENGTH dayTimesteps ) - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (DATETIME t = GET @INDEX i FROM dayTimesteps) DO\ "SlotFromDataObject"( res, "Turbine Release Estimate" ) [t] := GET @INDEX i FROM QTVals;\ \ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := ( GET @INDEX i FROM QTVals ) + GET @INDEX i FROM QSVals;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ELSE\ WITH_STATEMENT (NUMERIC outflowVol = "SumFlowsToVolume"( "SlotFromDataObject"( res, "Inflow Estimate" ), start, end )) DO\ WITH_STATEMENT (NUMERIC outflowAvg = outflowVol / ( end - start + 1.00000000 "hr" )) DO\ WITH_STATEMENT (NUMERIC requiredSpillVolUpdated = ( FOR ( DATETIME t IN dayTimesteps ) STAT_SUM\ "RequiredSpillEstimateGivenOutflowEstimate"( res, outflowAvg, t )\ ENDFOR * 1.00000000 "hr" ) COMMENTED_BY "Required Fish Spill") DO\ WITH_STATEMENT (NUMERIC QTVol = outflowVol - requiredSpillVolUpdated) DO\ WITH_STATEMENT (NUMERIC requestSum = "SumSlot"( $ "Requests.Total Nonfed Request", start, end )) DO\ WITH_STATEMENT (LIST QTVals = FOR ( DATETIME t IN dayTimesteps ) WITH LIST result = { } DO\ APPEND QTVol * ( $ "Requests.Total Nonfed Request" [t] / requestSum ) / 1.00000000 "hr" ONTO result\ ENDFOR) DO\ WITH_STATEMENT (LIST QSVals = FOR ( DATETIME t IN dayTimesteps ) WITH LIST result = { } DO\ APPEND "RequiredSpillEstimateGivenOutflowEstimate"( res, outflowAvg, t ) ONTO result\ ENDFOR) DO\ FOREACH (NUMERIC i IN "GetNumbers"( 0.00000000, ( LENGTH dayTimesteps ) - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (DATETIME t = GET @INDEX i FROM dayTimesteps) DO\ "SlotFromDataObject"( res, "Turbine Release Estimate" ) [t] := GET @INDEX i FROM QTVals;\ \ "SlotFromDataObject"( res, "Outflow Estimate" ) [t] := ( GET @INDEX i FROM QTVals ) + GET @INDEX i FROM QSVals;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Pool Elevation Estimate Avg";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using the Pool Elevation Estimate Avg for now.";\ WITH_STATEMENT (NUMERIC avg = FOR ( DATETIME t IN @"Start Timestep" TO @"Finish Timestep" ) STAT_AVE\ "SlotValueFromDataObject"( res, "Pool Elevation Estimate", t )\ ENDFOR) DO\ "SlotFromDataObject"( res, "Pool Elevation Estimate Avg" ) [] := avg;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Pool Elevation Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "We are only using the Pool Elevation Estimate Avg for now, but we calculate the avg from the
    Pool Elevation Estimate series slot values set by this rule.";\ WITH_STATEMENT (NUMERIC initElev = res & "Pool Elevation" [@"Start Timestep - 1"]) DO\ WITH_STATEMENT (NUMERIC targetEndElev = IF ( NOT IsNaN "SlotFromDataObject"( res, "Desired Elevation Target" ) [@"Finish Timestep"] )\ THEN\ "Min"( "SlotFromDataObject"( res, "Desired Elevation Target" ) [@"Finish Timestep"], "SlotFromDataObject"( res, "Elevation Max Controlling" ) [@"Finish Timestep"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [@"Finish Timestep"] )\ ELSE\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [@"Finish Timestep"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [@"Finish Timestep"]\ ENDIF) DO\ WITH_STATEMENT (NUMERIC slope = ( targetEndElev - initElev ) / ( @"Finish Timestep" - @"Start Timestep - 1" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC elevFromLinearEstimate = slope * ( t - @"Start Timestep - 1" ) + initElev) DO\ "SlotFromDataObject"( res, "Pool Elevation Estimate" ) [t] := "Min"( elevFromLinearEstimate, IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ) [t] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t]\ ELSE\ 30000.00000000 "ft" COMMENTED_BY "Dummy value"\ ENDIF );\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ "SlotFromDataObject"( res, "Pool Elevation Estimate" ) [@"Start Timestep - 1"] := initElev;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Inflow Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ WITH_STATEMENT (LIST upstreamResList = "UpstreamNonFedReservoirsInclusive"( res )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC inflowEstimate = IF ( "FourProjectCoordination"( ) )\ THEN\ $ "Wells Constraints.Outflow Initial" [t]\ ELSE\ $ "Chief Joseph Constraints.Outflow Initial" [t] + $ "Okanogan River.Inflow" [t] + $ "Methow River.Inflow" [t]\ ENDIF + FOR ( OBJECT upstreamRes IN upstreamResList ) STAT_SUM\ IF ( "IsInput"( upstreamRes & "Hydrologic Inflow Adjust", t ) )\ THEN\ upstreamRes & "Hydrologic Inflow Adjust" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDFOR + IF ( res != % "Wells" )\ THEN\ $ "Chelan River.Inflow" [t] + $ "Entiat River.Inflow" [t] + IF ( res != % "Rocky Reach" )\ THEN\ $ "Wenatchee River.Inflow" [t] + IF ( res == % "Priest Rapids" )\ THEN\ $ "Crab Creek.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ FOREACH (DATETIME t IN "PreviousDate"( @"Start Timestep", @"1:00:00" ) TO @"Start Timestep - 1") DO\ WITH_STATEMENT (NUMERIC inflowEstimate = ( "Lagged"( "UpstreamReach"( res ), "UpstreamReservoir"( res ) & "Outflow", t ) + IF ( "IsInput"( res & "Hydrologic Inflow Adjust", t ) )\ THEN\ res & "Hydrologic Inflow Adjust" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + IF ( res == % "Wells" )\ THEN\ $ "Okanogan River.Inflow" [t] + $ "Methow River.Inflow" [t]\ ELSE\ IF ( res == % "Rocky Reach" )\ THEN\ $ "Chelan River.Inflow" [t] + $ "Entiat River.Inflow" [t]\ ELSE\ IF ( res == % "Rock Island" )\ THEN\ $ "Wenatchee River.Inflow" [t]\ ELSE\ IF ( res == % "Priest Rapids" )\ THEN\ $ "Crab Creek.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF\ ENDIF\ ENDIF\ ENDIF ) COMMENTED_BY "For Pre-run timesteps, we use the lagged upstream outflow (observed) plus side flows.") DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Spill Exchange Initial";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Spill Exchange Spill Initial";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC spillExchange = ( $ "Grand Coulee Constraints.Spill Exchange Energy" [t] + $ "Chief Joseph Constraints.Spill Exchange Energy" [t] ) / 1.00000000 "hr") DO\ WITH_STATEMENT (NUMERIC HK = $ "Priest Rapids Constraints.Power Coefficient Approximation" [t]) DO\ WITH_STATEMENT (NUMERIC spillExchSpill = IF ( HK > 0.00000000 "MW/kcfs" )\ THEN\ spillExchange / HK\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ $ "Priest Rapids Constraints.Spill Exchange Spill" [t] := spillExchSpill;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Wells Bias Flow Fraction";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Wells Bias Flow Fraction";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC nonFedContentPercent = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "ElevationToStorage"( res, res & "Pool Elevation" [@"Start Timestep - 1"] ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Min Controlling" ) [@"Start Timestep"] )\ ENDFOR / $ "Nonfederal Data.Content Available" [@"Start Timestep"]) DO\ IF_STATEMENT (nonFedContentPercent >= $ "Wells Constraints.Bias Flow Nonfed Content Fracton Threshold" []) THEN\ DESCRIPTION "Nonfed content is above the threshold, so we assume all Bias will be negative, and thus it will not
    affect Wells Outflow.";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Wells Constraints.Bias Flow Fraction" [t] := 0.00000000;\ \ ENDFOREACH;\ \ ELSE\ DESCRIPTION "We will determine the Bias Flow Fraction based on the Wells initial storage for the day and Bias
    limits.

    If Wells starts below the elevation threshold, then we assume it will absorb all additional flow from Bias and thus the fraction is zero. If Wells starts above the max elevation with margin, then we assume Wells will pass all additional flow from Bias and thus the fraction is 1. Between those two starting elevations we linearly interpolate to determine the fraction.";\ WITH_STATEMENT (NUMERIC maxStorageWithMargin = "ElevationToStorage"( % "Wells", $ "Wells Constraints.License Max Pool Elevation" [] - $ "Wells Constraints.Pool Elevation Max Margin Default" [] )) DO\ WITH_STATEMENT (NUMERIC maxStorageWithBiasFractionParam = "ElevationToStorage"( % "Wells", $ "Wells Constraints.License Max Pool Elevation" [] - ( $ "Wells Constraints.Pool Elevation Max Margin Default" [] + $ "Wells Constraints.Bias Flow Fraction Elevation Parameter" [] ) )) DO\ WITH_STATEMENT (NUMERIC biasFlowFractionMaxStorageDelta = maxStorageWithMargin - maxStorageWithBiasFractionParam) DO\ WITH_STATEMENT (NUMERIC lagGCL = $ "GCL to CHJ.LagTime" [0.00000000, 0.00000000] + $ "CHJ to WEL.LagTime" [0.00000000, 0.00000000]) DO\ WITH_STATEMENT (NUMERIC lagFloorGCL = "Floor"( lagGCL, 1.00000000 "hr" )) DO\ WITH_STATEMENT (NUMERIC lagCeilingGCL = "Ceiling"( lagGCL, 1.00000000 "hr" )) DO\ WITH_STATEMENT (NUMERIC lagCHJ = $ "CHJ to WEL.LagTime" [0.00000000, 0.00000000]) DO\ WITH_STATEMENT (NUMERIC lagFloorCHJ = "Floor"( lagCHJ, 1.00000000 "hr" )) DO\ WITH_STATEMENT (NUMERIC lagCeilingCHJ = "Ceiling"( lagCHJ, 1.00000000 "hr" )) DO\ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ WITH_STATEMENT (NUMERIC scalingForRemainingHoursInDay = IF ( ( day == "NextDate"( @"Start Timestep", @"24:00:00" ) ) COMMENTED_BY "Is this the first day of the run?" )\ THEN\ ( ( day - @"Start Timestep - 1" ) / 24.00000000 "hr" ) COMMENTED_BY "If the first day is a partial day, we scale the storage delta before doing the interpolation."\ ELSE\ 1.00000000\ ENDIF) DO\ WITH_STATEMENT (NUMERIC scaledStorageDelta = ( biasFlowFractionMaxStorageDelta * scalingForRemainingHoursInDay ) COMMENTED_BY "Scale the storage delta if the first day is a partial day.") DO\ WITH_STATEMENT (NUMERIC biasFlowFractionStorageThreshold = maxStorageWithMargin - scaledStorageDelta) DO\ WITH_STATEMENT (NUMERIC startStorage = $ "Wells Constraints.Storage Estimate" ["DateMax"( "PreviousDate"( day - 1.00000000 "hr", @"24:00:00" ), @"Start Timestep - 1" )]) DO\ IF_STATEMENT (startStorage > biasFlowFractionStorageThreshold AND maxStorageWithMargin > biasFlowFractionStorageThreshold) THEN\ DESCRIPTION "We are above the threshold, so we need to interpolate to determne the fraction for the day.";\ WITH_STATEMENT (NUMERIC fraction = "Min"( ( startStorage - biasFlowFractionStorageThreshold ) / ( maxStorageWithMargin - biasFlowFractionStorageThreshold ), 1.00000000 )) DO\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( day, @"Finish Timestep" )) DO\ WITH_STATEMENT (NUMERIC biasScheduled = ( ( IF ( t - lagFloorGCL >= @"Start Timestep" )\ THEN\ IF ( "IsInput"( $ "Grand Coulee Constraints.Bias Scheduled", t - lagFloorGCL ) AND $ "Grand Coulee Constraints.Bias Scheduled" [t - lagFloorGCL] != $ "Federal Constraints.Bias NaN" [] )\ THEN\ $ "Grand Coulee Constraints.Bias Scheduled" [t - lagFloorGCL]\ ELSE\ $ "Grand Coulee Constraints.Bias Positive Limit" [t - lagFloorGCL]\ ENDIF\ ELSE\ 0.00000000 "MW"\ ENDIF + IF ( t - lagCeilingGCL >= @"Start Timestep" )\ THEN\ IF ( "IsInput"( $ "Grand Coulee Constraints.Bias Scheduled", t - lagCeilingGCL ) AND $ "Grand Coulee Constraints.Bias Scheduled" [t - lagCeilingGCL] != $ "Federal Constraints.Bias NaN" [] )\ THEN\ $ "Grand Coulee Constraints.Bias Scheduled" [t - lagCeilingGCL]\ ELSE\ $ "Grand Coulee Constraints.Bias Positive Limit" [t - lagCeilingGCL]\ ENDIF\ ELSE\ 0.00000000 "MW"\ ENDIF ) + ( IF ( t - lagFloorCHJ >= @"Start Timestep" )\ THEN\ IF ( "IsInput"( $ "Chief Joseph Constraints.Bias Scheduled", t - lagFloorCHJ ) AND $ "Chief Joseph Constraints.Bias Scheduled" [t - lagFloorCHJ] != $ "Federal Constraints.Bias NaN" [] )\ THEN\ $ "Chief Joseph Constraints.Bias Scheduled" [t - lagFloorCHJ]\ ELSE\ $ "Chief Joseph Constraints.Bias Positive Limit" [t - lagFloorCHJ]\ ENDIF\ ELSE\ 0.00000000 "MW"\ ENDIF + IF ( t - lagCeilingCHJ >= @"Start Timestep" )\ THEN\ IF ( "IsInput"( $ "Chief Joseph Constraints.Bias Scheduled", t - lagCeilingCHJ ) AND $ "Chief Joseph Constraints.Bias Scheduled" [t - lagCeilingCHJ] != $ "Federal Constraints.Bias NaN" [] )\ THEN\ $ "Chief Joseph Constraints.Bias Scheduled" [t - lagCeilingCHJ]\ ELSE\ $ "Chief Joseph Constraints.Bias Positive Limit" [t - lagCeilingCHJ]\ ENDIF\ ELSE\ 0.00000000 "MW"\ ENDIF ) ) COMMENTED_BY "This is to determine if Bias is already scheduled to be negative or zero. If it is, then we do not want any flow change from Bias (Bias Flow
    Fraction can be set to zero). We have to account for the lag time when considering on which timestep to set Bias Flow Fraction to zero.") DO\ $ "Wells Constraints.Bias Flow Fraction" [t] := IF ( ( biasScheduled <= 0.00000000 "MW" ) COMMENTED_BY "If the Positive Bias Limit is 0 or if Bias Scheduled is input and negative, then we know that the only Bias could be negative, in which case
    we don't want any Wells flow change from Bias (we do not want to decrease Wells flow from Bias). We cannot prevent this in all cases, but
    we can for the case that we know Bias cannot be positive. We account for the lag time in this logic." OR ( IF ( t - lagFloorGCL >= @"Start Timestep" )\ THEN\ $ "Federal Constraints.Bias Positive Limit Revised" [t - lagFloorGCL] <= 0.00000000 "MW"\ ELSE\ TRUE\ ENDIF AND IF ( t - lagCeilingGCL >= @"Start Timestep" )\ THEN\ $ "Federal Constraints.Bias Positive Limit Revised" [t - lagCeilingGCL] <= 0.00000000 "MW"\ ELSE\ TRUE\ ENDIF ) )\ THEN\ 0.00000000\ ELSE\ fraction\ ENDIF;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "If we are starting out below the threshold (or if the parameter is set to 0 ft), then we just set the
    fraction to 0 (no flow change from Bias).";\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( day, @"Finish Timestep" )) DO\ $ "Wells Constraints.Bias Flow Fraction" [t] := 0.00000000;\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Wells Pool Elevation Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ $ "Wells Constraints.Pool Elevation Estimate" [@"Start Timestep - 1"] := $ "Wells.Pool Elevation" [@"Start Timestep - 1"];\ \ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ $ "Wells Constraints.Pool Elevation Estimate" [day] := "StorageToElevation"( % "Wells", $ "Wells Constraints.Storage Estimate" [day] );\ \ ENDFOREACH;\ \ END;\ \ RULE "Wells Storage Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (NUMERIC maxStorage = "ElevationToStorage"( % "Wells", $ "Wells Constraints.License Max Pool Elevation" [] )) DO\ WITH_STATEMENT (NUMERIC minStorage = "ElevationToStorage"( % "Wells", $ "Wells Constraints.License Min Pool Elevation" [] )) DO\ WITH_STATEMENT (NUMERIC initStorage = "ElevationToStorage"( % "Wells", $ "Wells.Pool Elevation" [@"Start Timestep - 1"] )) DO\ $ "Wells Constraints.Storage Estimate" [@"Start Timestep - 1"] := initStorage;\ \ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ WITH_STATEMENT (NUMERIC endOfDayStorage = "Max"( "Min"( initStorage + "SumFlowsToVolume"( $ "Wells Constraints.Inflow Estimate", @"Start Timestep", day ) - "SumFlowsToVolume"( $ "Wells Constraints.Outflow Initial", @"Start Timestep", day ), maxStorage ), maxStorage )) DO\ $ "Wells Constraints.Storage Estimate" [day] := endOfDayStorage;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Content Available";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Nonfed Content Available";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Nonfederal Data.Content Available" [t] := FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "SlotFromDataObject"( res, "Content Available" ) [t]\ ENDFOR;\ \ ENDFOREACH;\ \ END;\ \ RULE "Set Project Content Available";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "Content Available" ) [t] := "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Min Controlling" ) [t] );\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Pool Elevation Margins";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Check if Starting Outside Margins";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Here we check if we are starting outside of the margins. If so, we relax the margin for early
    timesteps so that it does not force extreme flows to get within the margin on the first timestep.";\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ IF_STATEMENT (res & "Pool Elevation" [@"Start Timestep - 1"] > "SlotFromDataObject"( res, "Elevation Max Controlling" ) [@"Start Timestep"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [@"Start Timestep"]) THEN\ WITH_STATEMENT (NUMERIC volumeAbove = "ElevationToStorage"( res, res & "Pool Elevation" [@"Start Timestep - 1"] ) - "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Max Controlling" ) [@"Start Timestep"] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [@"Start Timestep"] )) DO\ WITH_STATEMENT (NUMERIC volumeReductionPerTimestep = $ "Nonfederal Data.Volume Change Per Timestep When Outside Margin" []) DO\ WITH_STATEMENT (NUMERIC numHoursToMargin = "Ceiling"( volumeAbove / volumeReductionPerTimestep, 1.00000000 "hr" )) DO\ WITH_STATEMENT (DATETIME timestepToReachMargin = @"Start Timestep" + numHoursToMargin) DO\ WITH_STATEMENT (NUMERIC slope = ( "SlotFromDataObject"( res, "Elevation Max Controlling" ) [timestepToReachMargin] - "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [timestepToReachMargin] - res & "Pool Elevation" [@"Start Timestep - 1"] ) / numHoursToMargin) DO\ WITH_STATEMENT (NUMERIC intercept = res & "Pool Elevation" [@"Start Timestep - 1"]) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO timestepToReachMargin) DO\ "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] := "Min"( "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] - ( slope * ( t - @"Start Timestep - 1" ) + intercept ), "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] );\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (res & "Pool Elevation" [@"Start Timestep - 1"] < "SlotFromDataObject"( res, "Elevation Min Controlling" ) [@"Start Timestep"] + "SlotFromDataObject"( res, "Pool Elevation Min Margin" ) [@"Start Timestep"]) THEN\ WITH_STATEMENT (NUMERIC volumeBelow = "ElevationToStorage"( res, "SlotFromDataObject"( res, "Elevation Min Controlling" ) [@"Start Timestep"] + "SlotFromDataObject"( res, "Pool Elevation Min Margin" ) [@"Start Timestep"] ) - "ElevationToStorage"( res, res & "Pool Elevation" [@"Start Timestep - 1"] )) DO\ WITH_STATEMENT (NUMERIC volumeIncreasePerTimestep = 10.00000000 "kcfs") DO\ WITH_STATEMENT (NUMERIC numHoursToMargin = "Ceiling"( volumeBelow / volumeIncreasePerTimestep, 1.00000000 "hr" )) DO\ WITH_STATEMENT (DATETIME timestepToReachMargin = @"Start Timestep" + numHoursToMargin) DO\ WITH_STATEMENT (NUMERIC slope = ( "SlotFromDataObject"( res, "Elevation Min Controlling" ) [timestepToReachMargin] + "SlotFromDataObject"( res, "Pool Elevation Min Margin" ) [timestepToReachMargin] - res & "Pool Elevation" [@"Start Timestep - 1"] ) / numHoursToMargin) DO\ WITH_STATEMENT (NUMERIC intercept = res & "Pool Elevation" [@"Start Timestep - 1"]) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO timestepToReachMargin) DO\ "SlotFromDataObject"( res, "Pool Elevation Min Margin" ) [t] := "Min"( slope * ( t - @"Start Timestep - 1" ) + intercept - "SlotFromDataObject"( res, "Elevation Min Controlling" ) [t], "SlotFromDataObject"( res, "Pool Elevation Min Margin" ) [t] );\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Reservoir Elevation Margins";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC minMargin = "MinItem"( { "Max"( $ "Nonfederal Data.Min Elevation Margin" [t], "ScalarValueFromDataObject"( res, "Pool Elevation Min Margin Default" ) ) , ( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) ) / 2.00000000 , $ "Nonfederal Data.Min Elevation Margin Limit" [] } )) DO\ "SlotFromDataObject"( res, "Pool Elevation Min Margin" ) [t] := minMargin;\ \ END_WITH_STATEMENT;\ \ WITH_STATEMENT (NUMERIC maxMargin = "MinItem"( { "Max"( $ "Nonfederal Data.Max Elevation Margin" [t], "ScalarValueFromDataObject"( res, "Pool Elevation Max Margin Default" ) ) , ( "SlotValueFromDataObject"( res, "Elevation Max Controlling", t ) - "SlotValueFromDataObject"( res, "Elevation Min Controlling", t ) ) / 2.00000000 , $ "Nonfederal Data.Max Elevation Margin Limit" [] } )) DO\ "SlotFromDataObject"( res, "Pool Elevation Max Margin" ) [t] := maxMargin;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Nonfederal Elevation Margins";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ $ "Nonfederal Data.Max Elevation Margin" [t] := GET @INDEX 0.00000000 FROM "MaxElevationMarginCalc"( t );\ \ $ "Nonfederal Data.Min Elevation Margin" [t] := GET @INDEX 0.00000000 FROM "MinElevationMarginCalc"( t );\ \ ENDFOREACH;\ \ END;\ \ RULE "Uncertainty Margin Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ DESCRIPTION "Calculate the volume to use for the Max Elevation margins";\ WITH_STATEMENT (NUMERIC vol = $ "Nonfederal Data.Uncertainty Margin Parameter for Max Elev" [] * $ "Nonfederal Data.Inflow Forecast Total Daily Volume" [t] * "Exp"( ( t - @"Start Timestep - 1" ) / 24.00000000 "hr", 0.50000000 )) DO\ $ "Nonfederal Data.Uncertainty Margin Volume for Max Elev" [t] := vol;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "Calculate the volume to use for the Min Elevation margins";\ WITH_STATEMENT (NUMERIC vol = $ "Nonfederal Data.Uncertainty Margin Parameter for Min Elev" [] * $ "Nonfederal Data.Inflow Forecast Total Daily Volume" [t] * "Exp"( ( t - @"Start Timestep - 1" ) / 24.00000000 "hr", 0.50000000 )) DO\ $ "Nonfederal Data.Uncertainty Margin Volume for Min Elev" [t] := vol;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Inflow Forecast Total Daily Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ $ "Nonfederal Data.Inflow Forecast Total Daily Volume" [t] := $ "Nonfederal Data.CHJ Discharge Estimate Daily Volume" [t] + $ "Nonfederal Data.Sideflow Forecast Daily Volume" [t];\ \ ENDFOREACH;\ \ END;\ \ RULE "Sideflow Forecast Daily Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC vol = "SumSideflowsToVolDownstreamCHJ"( "PreviousDate"( t, @"1:00:00" ), "NextDate"( t, @"24:00:00" ) )) DO\ $ "Nonfederal Data.Sideflow Forecast Daily Volume" [t] := vol;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "CHJ Discharge Estimate Daily Volume";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC vol = "SumFlowsToVolume"( $ "Chief Joseph Constraints.Discharge Estimate", "DateMax"( "PreviousDate"( t, @"1:00:00" ), @"Start Timestep" ), "NextDate"( t, @"24:00:00" ) ) + IF ( "PreviousDate"( t, @"1:00:00" ) < @"Start Timestep" )\ THEN\ "SumFlowsToVolume"( $ "Chief Joseph.Outflow", "PreviousDate"( t, @"1:00:00" ), @"Start Timestep - 1" )\ ELSE\ 0.00000000 "kcfs-hr"\ ENDIF COMMENTED_BY "If there are pre-run time steps in this day, use the Chief Joseph.Outflow for those time steps.") DO\ $ "Nonfederal Data.CHJ Discharge Estimate Daily Volume" [t] := vol;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Elevation Min and Max Controlling";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ "SlotFromDataObject"( res, "Elevation Max Controlling" ) [t] := IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ), t ) )\ THEN\ "Min"( "SlotValueFromDataObject"( res, "Special Operations Max Pool Elevation", t ) + "ScalarValueFromDataObject"( res, "Pond Limits Adjustment" ) COMMENTED_BY "This is currently zero.", "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) )\ ELSE\ "ScalarValueFromDataObject"( res, "License Max Pool Elevation" )\ ENDIF;\ \ "SlotFromDataObject"( res, "Elevation Min Controlling" ) [t] := IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Pool Elevation" ), t ) )\ THEN\ "Max"( "SlotValueFromDataObject"( res, "Special Operations Min Pool Elevation", t ) + "ScalarValueFromDataObject"( res, "Pond Limits Adjustment" ) COMMENTED_BY "This is currently zero.", "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) )\ ELSE\ "ScalarValueFromDataObject"( res, "License Min Pool Elevation" )\ ENDIF;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Bias Limits Revised";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Revised Bias Limits Flatten";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC biasPositiveLimit = "MinItem"( "GetSlotVals"( $ "Federal Constraints.Bias Positive Limit Revised", "DateMax"( t - 2.00000000 "hr", @"Start Timestep" ), "DateMin"( t + 2.00000000 "hr", @"Finish Timestep" ) ) )) DO\ $ "Federal Constraints.Bias Positive Limit Revised" [t] := biasPositiveLimit;\ \ END_WITH_STATEMENT;\ \ WITH_STATEMENT (NUMERIC biasNegativeLimit = "MaxItem"( "GetSlotVals"( $ "Federal Constraints.Bias Negative Limit Revised", "DateMax"( t - 2.00000000 "hr", @"Start Timestep" ), "DateMin"( t + 2.00000000 "hr", @"Finish Timestep" ) ) )) DO\ $ "Federal Constraints.Bias Negative Limit Revised" [t] := biasNegativeLimit;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Revised Bias Limits Initial";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ INACTIVE DESCRIPTION "This old formulation limits bias such that it will not increase federal generation over the peak nor
    reduce federal generation on min gen hours. This is disabled and replaced by the formulation
    below, but it is left in the model for now.";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC biasPositiveLimit = "Max"( "Floor"( "MinItem"( { $ "Federal Constraints.Bias Positive Limit" [t] , $ "Grand Coulee Constraints.Bias Positive Limit" [t] + $ "Chief Joseph Constraints.Bias Positive Limit" [t] , ( $ "Federal Constraints.Upper Generation Bound" [t] - $ "Federal Constraints.Adjusted Request" [t] ) / 1.00000000 "hr" } ), $ "Federal Constraints.Bias Increment" [] ), 0.00000000 "MW" )) DO\ $ "Federal Constraints.Bias Positive Limit Revised" [t] := biasPositiveLimit;\ \ END_WITH_STATEMENT;\ \ WITH_STATEMENT (NUMERIC biasNegativeLimit = "Min"( "Ceiling"( "MaxItem"( { $ "Federal Constraints.Bias Negative Limit" [t] , $ "Grand Coulee Constraints.Bias Negative Limit" [t] + $ "Chief Joseph Constraints.Bias Negative Limit" [t] , ( $ "Federal Constraints.Lower Generation Bound" [t] - $ "Federal Constraints.Adjusted Request" [t] ) / 1.00000000 "hr" } ), $ "Federal Constraints.Bias Increment" [] ), 0.00000000 "MW" )) DO\ $ "Federal Constraints.Bias Negative Limit Revised" [t] := biasNegativeLimit;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC maxFedGen = IF ( "IsInput"( $ "Grand Coulee Constraints.Special Operations Max Generation", t ) )\ THEN\ $ "Grand Coulee Constraints.Special Operations Max Generation" [t]\ ELSE\ "MaxItem"( "GetTableColumnVals"( $ "Grand Coulee.Plant Power Table", 2.00000000, 0.00000000, "NumRows"( $ "Grand Coulee.Plant Power Table" ) - 1.00000000 ) )\ ENDIF + IF ( "IsInput"( $ "Chief Joseph Constraints.Special Operations Max Generation", t ) )\ THEN\ $ "Chief Joseph Constraints.Special Operations Max Generation" [t]\ ELSE\ "MaxItem"( "GetTableColumnVals"( $ "Chief Joseph.Plant Power Table", 2.00000000, 0.00000000, "NumRows"( $ "Chief Joseph.Plant Power Table" ) - 1.00000000 ) )\ ENDIF) DO\ WITH_STATEMENT (NUMERIC minNonFedGen = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "MaxItem"( { IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t]\ ELSE\ 0.00000000 "MW"\ ENDIF , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Min Generation" ) [t]\ ELSE\ 0.00000000 "MW"\ ENDIF } )\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC biasPositiveLimit = "Max"( "Floor"( "MinItem"( { $ "Federal Constraints.Bias Positive Limit" [t] , $ "Grand Coulee Constraints.Bias Positive Limit" [t] + $ "Chief Joseph Constraints.Bias Positive Limit" [t] , ( maxFedGen - ( $ "Federal Constraints.Adjusted Request" [t] / 1.00000000 "hr" + $ "Federal Constraints.Bias Federal Capacity Buffer" [] ) ) COMMENTED_BY "Limit positive Bias such that it will not force the Fed system to close to max capacity (Bias Federal
    Capacity Buffer)." , ( $ "Requests.Total Nonfed Request" [t] / 1.00000000 "hr" - ( minNonFedGen + $ "Nonfederal Data.Bias Nonfederal Min Capacity Buffer" [] ) ) COMMENTED_BY "Limit positive Bias such that it will not force the Nonfed system to close to min capacity (Bias
    Nonfederal Min Capacity Buffer)." } ), $ "Federal Constraints.Bias Increment" [] ), 0.00000000 "MW" )) DO\ $ "Federal Constraints.Bias Positive Limit Revised" [t] := biasPositiveLimit;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ WITH_STATEMENT (NUMERIC minFedGen = IF ( "IsInput"( $ "Grand Coulee Constraints.Special Operations Min Generation", t ) )\ THEN\ $ "Grand Coulee Constraints.Special Operations Min Generation" [t]\ ELSE\ 0.00000000 "MW"\ ENDIF + IF ( "IsInput"( $ "Chief Joseph Constraints.Special Operations Min Generation", t ) )\ THEN\ $ "Chief Joseph Constraints.Special Operations Min Generation" [t]\ ELSE\ 0.00000000 "MW"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC maxNonfedGen = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "MinItem"( { IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t]\ ELSE\ 0.00000000 "MW"\ ENDIF , IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Max Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Soft Max Generation" ) [t]\ ELSE\ 0.00000000 "MW"\ ENDIF } )\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC biasNegativeLimit = "Min"( "Ceiling"( "MaxItem"( { $ "Federal Constraints.Bias Negative Limit" [t] , $ "Grand Coulee Constraints.Bias Negative Limit" [t] + $ "Chief Joseph Constraints.Bias Negative Limit" [t] , ( ( minFedGen + $ "Federal Constraints.Bias Federal Capacity Buffer" [] ) - $ "Federal Constraints.Adjusted Request" [t] / 1.00000000 "hr" ) COMMENTED_BY "Limit negative Bias such that it will not force the Fed system to close to min gen (Bias Federal
    Capacity Buffer)." , ( ( $ "Requests.Total Nonfed Request" [t] / 1.00000000 "hr" + $ "Nonfederal Data.Bias Nonfederal Max Capacity Buffer" [] ) - maxNonfedGen ) COMMENTED_BY "Limit negative Bias such that it will not force the Nonfed system to close to max gen capacity
    (Bias Nonfederal Max Capacity Buffer)." } ), $ "Federal Constraints.Bias Increment" [] ), 0.00000000 "MW" )) DO\ $ "Federal Constraints.Bias Negative Limit Revised" [t] := biasNegativeLimit;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Bias Limits Combined";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC biasPositiveLimit = "Max"( "MinItem"( { $ "Federal Constraints.Bias Positive Limit" [t] , $ "Grand Coulee Constraints.Bias Positive Limit" [t] + $ "Chief Joseph Constraints.Bias Positive Limit" [t] } ), 0.00000000 "MW" )) DO\ $ "Federal Constraints.Bias Positive Limit Combined" [t] := biasPositiveLimit;\ \ END_WITH_STATEMENT;\ \ WITH_STATEMENT (NUMERIC biasNegativeLimit = "Min"( "MaxItem"( { $ "Federal Constraints.Bias Negative Limit" [t] , $ "Grand Coulee Constraints.Bias Negative Limit" [t] + $ "Chief Joseph Constraints.Bias Negative Limit" [t] } ), 0.00000000 "MW" )) DO\ $ "Federal Constraints.Bias Negative Limit Combined" [t] := biasNegativeLimit;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Upper and Lower Generation Bound";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC upperBound = IF ( $ "Federal Constraints.Peak Valley" [t] == 1.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [t]\ ELSE\ ( IF ( "NextMaxRequestTime"( t ) == @"Finish Timestep" AND $ "Federal Constraints.Peak Valley" [@"Finish Timestep"] != 1.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [@"Finish Timestep"] + $ "Federal Constraints.Bias Positive Limit" [@"Finish Timestep"] * 1.00000000 "hr"\ ELSE\ $ "Federal Constraints.Adjusted Request" ["NextMaxRequestTime"( t )]\ ENDIF - IF ( "PreviousMaxRequestTime"( t ) == @"Start Timestep" AND $ "Federal Constraints.Peak Valley" [@"Start Timestep"] != 1.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [@"Start Timestep"] + $ "Federal Constraints.Bias Positive Limit" [@"Start Timestep"] * 1.00000000 "hr"\ ELSE\ $ "Federal Constraints.Adjusted Request" ["PreviousMaxRequestTime"( t )]\ ENDIF ) / ( "NextMaxRequestTime"( t ) - "PreviousMaxRequestTime"( t ) ) * ( t - "PreviousMaxRequestTime"( t ) ) + IF ( "PreviousMaxRequestTime"( t ) == @"Start Timestep" AND $ "Federal Constraints.Peak Valley" [@"Start Timestep"] != 1.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [@"Start Timestep"] + $ "Federal Constraints.Bias Positive Limit" [@"Start Timestep"] * 1.00000000 "hr"\ ELSE\ $ "Federal Constraints.Adjusted Request" ["PreviousMaxRequestTime"( t )]\ ENDIF\ ENDIF) DO\ $ "Federal Constraints.Upper Generation Bound" [t] := upperBound;\ \ END_WITH_STATEMENT;\ \ WITH_STATEMENT (NUMERIC lowerBound = IF ( $ "Federal Constraints.Peak Valley" [t] == 2.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [t]\ ELSE\ ( IF ( "NextMinRequestTime"( t ) == @"Finish Timestep" AND $ "Federal Constraints.Peak Valley" [@"Finish Timestep"] != 2.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [@"Finish Timestep"] + $ "Federal Constraints.Bias Negative Limit" [@"Finish Timestep"] * 1.00000000 "hr"\ ELSE\ $ "Federal Constraints.Adjusted Request" ["NextMinRequestTime"( t )]\ ENDIF - IF ( "PreviousMinRequestTime"( t ) == @"Start Timestep" AND $ "Federal Constraints.Peak Valley" [@"Start Timestep"] != 2.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [@"Start Timestep"] + $ "Federal Constraints.Bias Negative Limit" [@"Start Timestep"] * 1.00000000 "hr"\ ELSE\ $ "Federal Constraints.Adjusted Request" ["PreviousMinRequestTime"( t )]\ ENDIF ) / ( "NextMinRequestTime"( t ) - "PreviousMinRequestTime"( t ) ) * ( t - "PreviousMinRequestTime"( t ) ) + IF ( "PreviousMinRequestTime"( t ) == @"Start Timestep" AND $ "Federal Constraints.Peak Valley" [@"Start Timestep"] != 2.00000000 )\ THEN\ $ "Federal Constraints.Adjusted Request" [@"Start Timestep"] + $ "Federal Constraints.Bias Negative Limit" [@"Start Timestep"] * 1.00000000 "hr"\ ELSE\ $ "Federal Constraints.Adjusted Request" ["PreviousMinRequestTime"( t )]\ ENDIF\ ENDIF) DO\ $ "Federal Constraints.Lower Generation Bound" [t] := lowerBound;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Federal Request Peak Valley";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC peakValley = WITH LIST dailyRequestVals = "GetSlotVals"( $ "Federal Constraints.Adjusted Request", "DateMax"( "PreviousDate"( t, @"7:00:00" ), @"Start Timestep" ), "DateMin"( "NextDate"( t, @"6:00:00" ), @"Finish Timestep" ) ) DO\ IF ( $ "Federal Constraints.Adjusted Request" [t] == "MaxItem"( dailyRequestVals ) )\ THEN\ 1.00000000\ ELSE\ IF ( $ "Federal Constraints.Adjusted Request" [t] == "MinItem"( dailyRequestVals ) )\ THEN\ 2.00000000\ ELSE\ 0.00000000\ ENDIF\ ENDIF\ ENDWITH) DO\ $ "Federal Constraints.Peak Valley" [t] := peakValley;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Federal Adjusted Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Federal Constraints.Adjusted Request" [t] := $ "Grand Coulee Constraints.Adjusted Request" [t] + $ "Chief Joseph Constraints.Adjusted Request" [t];\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Bias Inputs";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Bias Scheduled";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Bias Scheduled" ), t ) AND "SlotFromDataObject"( res, "Bias Scheduled" ) [t] != $ "Federal Constraints.Bias NaN" []) THEN\ "SlotFromDataObject"( res, "Bias Scheduled for Plotting" ) [t] := "SlotFromDataObject"( res, "Bias Scheduled" ) [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Bias Scheduled", t ) AND $ "Federal Constraints.Bias Scheduled" [t] != $ "Federal Constraints.Bias NaN" []) THEN\ $ "Federal Constraints.Bias Scheduled for Plotting" [t] := $ "Federal Constraints.Bias Scheduled" [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Bias Actual";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep - 24" TO @"Start Timestep - 1") DO\ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Bias Actual" ), t ) AND "SlotFromDataObject"( res, "Bias Actual" ) [t] != $ "Federal Constraints.Bias NaN" []) THEN\ "SlotFromDataObject"( res, "Bias" ) [t] := "SlotFromDataObject"( res, "Bias Actual" ) [t];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Bias Actual", t ) AND $ "Federal Constraints.Bias Actual" [t] != $ "Federal Constraints.Bias NaN" []) THEN\ $ "Federal Constraints.Bias Scheduled for Plotting" [t] := $ "Federal Constraints.Bias Scheduled" [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( $ "Federal Constraints.Bias Actual", t ) AND $ "Federal Constraints.Bias Actual" [t] != $ "Federal Constraints.Bias NaN" []) THEN\ $ "Federal Constraints.Bias" [t] := $ "Federal Constraints.Bias Actual" [t];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Grand Coulee Constraints.Bias Actual", t ) AND $ "Grand Coulee Constraints.Bias Actual" [t] != $ "Federal Constraints.Bias NaN" [] AND "IsInput"( $ "Chief Joseph Constraints.Bias Actual", t ) AND $ "Chief Joseph Constraints.Bias Actual" [t] != $ "Federal Constraints.Bias NaN" []) THEN\ $ "Federal Constraints.Bias" [t] := $ "Grand Coulee Constraints.Bias Actual" [t] + $ "Chief Joseph Constraints.Bias Actual" [t];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Federal Request Adjustment";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Adjusted Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ "SlotFromDataObject"( res, "Adjusted Request" ) [t] := IF ( "IsInput"( "SlotFromDataObject"( res, "Request Adjustment" ), t ) AND "SlotFromDataObject"( res, "Request Adjustment" ) [t] != 0.00000000 "MWH" AND "SlotFromDataObject"( res, "Request Adjustment" ) [t] != $ "Requests.Request NaN" [] )\ THEN\ "SlotFromDataObject"( res, "Request Adjustment" ) [t]\ ELSE\ "SlotValueFromDataObject"( res, "Smoothed Request", t )\ ENDIF;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Smoothed Request";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ INACTIVE DESCRIPTION "We no longer use the version that scales requests. This could produce bad results in high flow
    conditions and when there is intended spill at CHJ.";\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC smoothedRequest = "MovingAverage5Hour"( "SlotFromDataObject"( res, "Scaled Request" ), t )) DO\ "SlotFromDataObject"( res, "Smoothed Request" ) [t] := smoothedRequest;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC smoothedRequest = "MovingAverage5Hour"( "SlotFromDataObject"( res, "Initial Uncoordinated Request" ), t )) DO\ "SlotFromDataObject"( res, "Smoothed Request" ) [t] := smoothedRequest;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Scaled Request";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ WITH_STATEMENT (NUMERIC scaleFactor = ( "InDayTotalRunPeriodOnly"( $ "Chief Joseph Constraints.Discharge Estimate", t ) * $ "Chief Joseph Constraints.Power Coeff Line Approx" [t] * 1.00000000 "hr" / "InDayTotalRunPeriodOnly"( $ "Chief Joseph Constraints.Initial Uncoordinated Request", t ) )) DO\ WITH_STATEMENT (NUMERIC minGen = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Generation", t ) * 1.00000000 "hr"\ ELSE\ 0.00000000 "MWH"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC maxGen = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Max Generation", t ) * 1.00000000 "hr"\ ELSE\ 30000.00000000 "MWH" COMMENTED_BY "Dummy Value"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC scaledRequest = "Max"( "Min"( ( "SlotValueFromDataObject"( res, "Initial Uncoordinated Request", t ) * scaleFactor ) COMMENTED_BY "Standard Condition", maxGen ), minGen )) DO\ "SlotFromDataObject"( res, "Scaled Request" ) [t] := scaledRequest;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Nonfed Max Available Storage";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Nonfed Max Available Storage System Total";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ $ "Nonfederal Data.Max Available Storage" [] := FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ "SlotFromDataObject"( res, "Max Available Storage" ) []\ ENDFOR;\ \ END;\ \ RULE "Nonfed Max Available Storage by Project";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ "SlotFromDataObject"( res, "Max Available Storage" ) [] := "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Max Pool Elevation" ) ) - "ElevationToStorage"( res, "ScalarValueFromDataObject"( res, "License Min Pool Elevation" ) );\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Desired Elevation Targets";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Desired Elevation Targets";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT (IsNaN "SlotValueFromDataObject"( res, "Desired Elevation Target", t )) THEN\ DESCRIPTION "If the Desired Elevation Target series slot does not already have a value (entered manually or by
    DMI), then populate it with the default value from the Desired Elevation Table.";\ "SlotFromDataObject"( res, "Desired Elevation Target" ) [t] := $ "Nonfederal Data.Desired Elevation Table" [t, STRINGIFY res];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Priest Rapids Flow Bands";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Daily Low Flow Tolerance";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME day IN "RearingPeriod"( ) COMMENTED_BY "This returns a list of 24:00 timesteps in the Rearing Period." SET_UNION IF ( "IsActiveSeasonFromDates"( "Rearing Period", @"Finish Timestep" ) )\ THEN\ { @"Finish Timestep" COMMENTED_BY "Also include the Finish Timestep for the cases that the last day of the run does not end at 24:00" }\ ELSE\ { }\ ENDIF) DO\ WITH_STATEMENT (NUMERIC tol = IF ( $ "Priest Rapids Constraints.Flow Bands" [day] >= $ "Priest Rapids Constraints.Daily Low Flow Tolerance Table" [0.00000000, 0.00000000] )\ THEN\ "TableLookup"( $ "Priest Rapids Constraints.Daily Low Flow Tolerance Table", 0.00000000, 1.00000000, $ "Priest Rapids Constraints.Flow Bands" [day], day, FALSE COMMENTED_BY "Round down" )\ ELSE\ $ "Priest Rapids Constraints.Daily Low Flow Tolerance Table" [0.00000000, 1.00000000] COMMENTED_BY "If the Flow Band value is lower that the smallest Flow Band value in the table, just use the
    smallest tolerance value in the table."\ ENDIF) DO\ $ "Priest Rapids Constraints.Daily Low Flow Tolerance" [day] := tol;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Check Daily High and Low Flow Import Values";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (SLOT importHighFlowSlot = $ "Priest Rapids Constraints.Daily High Flow Import") DO\ WITH_STATEMENT (SLOT importLowFlowSlot = $ "Priest Rapids Constraints.Daily Low Flow Import") DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsActiveSeasonFromDates"( "Rearing Period", t )) THEN\ IF_STATEMENT ("IsInput"( importHighFlowSlot, t ) AND ( importHighFlowSlot [t] > 0.00000000 "kcfs" ) COMMENTED_BY "0 kcfs is used as a psuedo-NaN for this slot.") THEN\ IF_STATEMENT (t <= "NextDate"( @"Start Timestep", @"24:00:00" ) AND @"Start Timestep" > @"1:00:00" AND importHighFlowSlot [t] < "MaxItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( @"Start Timestep", @"1:00:00" ), @"Start Timestep - 1" ) )) THEN\ WARNING_STATEMENT importHighFlowSlot CONCAT " value on " CONCAT t CONCAT " is less than the greatest actual " CONCAT $ "Priest Rapids.Outflow" CONCAT " values on pre-run timesteps for the first day of the run. This Daily High Flow constraint cannot be fully satisfied.";\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( importLowFlowSlot, t ) AND importHighFlowSlot [t] < importLowFlowSlot [t]) THEN\ STOP_RUN_STATEMENT importHighFlowSlot CONCAT " value on " CONCAT t CONCAT " is less than " CONCAT importLowFlowSlot;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( importLowFlowSlot, t ) AND ( importLowFlowSlot [t] > 0.00000000 "kcfs" ) COMMENTED_BY "0 kcfs is used as a psuedo-NaN for this slot.") THEN\ IF_STATEMENT (t <= "NextDate"( @"Start Timestep", @"24:00:00" ) AND @"Start Timestep" > @"1:00:00" AND importLowFlowSlot [t] > "MinItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "PreviousDate"( @"Start Timestep", @"1:00:00" ), @"Start Timestep - 1" ) )) THEN\ WARNING_STATEMENT importLowFlowSlot CONCAT " value on " CONCAT t CONCAT " is greater than the smallest actual " CONCAT $ "Priest Rapids.Outflow" CONCAT " values on pre-run timesteps for the first day of the run. This Daily Low Flow constraint cannot be fully satisfied.";\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Flow Bands";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (SLOT importSlot = $ "Priest Rapids Constraints.Flow Bands Import") DO\ WITH_STATEMENT (SLOT defaultSlot = $ "Priest Rapids Constraints.Flow Bands Default") DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsActiveSeasonFromDates"( "Rearing Period", t )) THEN\ IF_STATEMENT ("IsInput"( importSlot, t )) THEN\ $ "Priest Rapids Constraints.Flow Bands" [t] := IF ( "IsInput"( importSlot, t ) AND importSlot [t] > 0.00000000 "kcfs" )\ THEN\ importSlot [t]\ ELSE\ defaultSlot [t]\ ENDIF;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Flow Bands Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME day IN "RearingPeriod"( ) COMMENTED_BY "This returns a list of 24:00 timesteps in the Rearing Period." SET_UNION IF ( "IsActiveSeasonFromDates"( "Rearing Period", @"Finish Timestep" ) )\ THEN\ { @"Finish Timestep" COMMENTED_BY "Also include the Finish Timestep for the cases that the last day of the run does not end at 24:00" }\ ELSE\ { }\ ENDIF) DO\ WITH_STATEMENT (NUMERIC flowBand = "FlowBand"( day )) DO\ FOREACH (DATETIME t IN "PreviousDate"( day, @"1:00:00" ) TO day) DO\ $ "Priest Rapids Constraints.Flow Bands Default" [t] := flowBand;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Flow Band Estimated Average Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME day IN "RearingPeriod"( ) COMMENTED_BY "This returns a list of 24:00 timesteps in the Rearing Period." SET_UNION IF ( "IsActiveSeasonFromDates"( "Rearing Period", @"Finish Timestep" ) )\ THEN\ { @"Finish Timestep" COMMENTED_BY "Also include the Finish Timestep for the cases that the last day of the run does not end at 24:00" }\ ELSE\ { }\ ENDIF) DO\ WITH_STATEMENT (NUMERIC flowEst = "FlowBandEstimatedAvgFlow"( day )) DO\ FOREACH (DATETIME t IN "PreviousDate"( day, @"1:00:00" ) TO day) DO\ $ "Priest Rapids Constraints.Flow Band Estimated Average Flow" [t] := flowEst;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Priest Rapids Daily Low Flow Pre-Run Period";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (LIST daylist = { "NextDate"( @"Start Timestep - 96", @"24:00:00" ) , "NextDate"( @"Start Timestep - 72", @"24:00:00" ) , "NextDate"( @"Start Timestep - 48", @"24:00:00" ) , "NextDate"( @"Start Timestep - 24", @"24:00:00" ) }) DO\ FOREACH (DATETIME day IN daylist) DO\ WITH_STATEMENT (NUMERIC dailyLowFlow = "MinItem"( "GetSlotVals"( $ "Priest Rapids.Outflow", "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep - 96" ), "DateMin"( day, @"Start Timestep - 1" ) ) )) DO\ $ "Priest Rapids Constraints.Daily Low Flow" [day] := dailyLowFlow;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ END;\ \ POLICY_GROUP "Protection Level Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Protection Level Flow";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Vernita Bar Constraints.Protection Level Flow" [t] := "PLFCalc"( t ) COMMENTED_BY "The PLFCalc function first checks if the PLF Manual slot is input and uses that if input. Otherwise
    it grabs the correct default min flow for VB depending on which season we are in.";\ \ ENDFOREACH;\ \ END;\ \ RULE "Set PLF Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "The values set in this rule will get used if there are no values in the PLF Manual slot.";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ $ "Vernita Bar Constraints.PLF Default" [t] := "PLFDefaultCalc"( t ) COMMENTED_BY "This function grabs the correct default min flow for VB depending on which season we are in.";\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Wells Initial Values for Four Project Coordination";\ DESCRIPTION "All of these rules only execute for the Four Project Coordination case";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Check Wells Outflow Initial for Max Elevation";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT "FourProjectCoordination"( );\ SET_VALUE_FLAG 64;\ NOTES "";\ BEGIN\ \ DESCRIPTION "We intentionally set these values with the R flag because later (or in a subsequent run) we need
    to distinguish between when they are actually inputs and when they were set by init rules.

    In this rule, we are estimating if the Outflow Initial would result in a Storage above the max or below the min on each day. If it would, we adjust Outflow Initial by spreading the excess evenly across the day (for now, could be refined later).";\ WITH_STATEMENT (NUMERIC maxStorage = "ElevationToStorage"( % "Wells", $ "Wells Constraints.License Max Pool Elevation" [] - $ "Wells Constraints.Pool Elevation Max Margin Default" [] )) DO\ WITH_STATEMENT (NUMERIC minStorage = "ElevationToStorage"( % "Wells", $ "Wells Constraints.License Min Pool Elevation" [] + $ "Wells Constraints.Pool Elevation Min Margin Default" [] )) DO\ WITH_STATEMENT (LIST dayList = "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ WITH_STATEMENT (LIST startStorageList = FOR ( DATETIME day IN dayList ) WITH LIST result = { } DO\ IF ( ( day == "NextDate"( @"Start Timestep", @"24:00:00" ) ) COMMENTED_BY "Is this the first day? If so, use the initial Storage." )\ THEN\ { "ElevationToStorage"( % "Wells", $ "Wells.Pool Elevation" [@"Start Timestep - 1"] ) }\ ELSE\ APPEND "Min"( "Max"( "LastElementInListNumeric"( result ) + "SumFlowsToVolume"( $ "Wells Constraints.Inflow Estimate", "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" ), day ) - "SumFlowsToVolume"( $ "Wells Constraints.Outflow Initial", "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" ), day ), minStorage ), maxStorage ) COMMENTED_BY "If the calculated storage is outside of the min or max, adjust it to the min or max. This way we
    start the calculation for the next day within the min and max." ONTO result\ ENDIF\ ENDFOR COMMENTED_BY "Determine the estimated storage at the start of each day given the current Outflow Initial. We
    constraint this to be within the min and max. We create the list in day sequence so that we can
    use the estimated storage from the end of the previous day as the start when calculating for the
    next day.") DO\ FOREACH (NUMERIC d IN "GetNumbers"( 0.00000000, ( LENGTH dayList ) - 1.00000000, 1.00000000 )) DO\ WITH_STATEMENT (DATETIME dayStart = "DateMax"( "PreviousDate"( GET @INDEX d FROM dayList, @"1:00:00" ), @"Start Timestep" )) DO\ WITH_STATEMENT (DATETIME dayEnd = GET @INDEX d FROM dayList) DO\ WITH_STATEMENT (BOOLEAN isDailyDischargeInput = FOR ( DATETIME t IN dayStart TO dayEnd ) WITH BOOLEAN result = TRUE DO\ IF ( ( NOT "IsInput"( $ "Wells Constraints.Daily Discharge Estimate", t ) OR $ "Wells Constraints.Daily Discharge Estimate" [t] == 0.00000000 "kcfs" OR $ "Wells Constraints.Daily Discharge Estimate" [t] == 9999.00000000 "kcfs" ) AND ( NOT "IsInput"( $ "Wells Constraints.Outflow Hourly", t ) OR $ "Wells Constraints.Outflow Hourly" [t] == 0.00000000 "kcfs" OR $ "Wells Constraints.Outflow Hourly" [t] == 9999.00000000 "kcfs" ) AND ( NOT "IsInput"( $ "Wells Constraints.Outflow Initial Adjustment", t ) OR $ "Wells Constraints.Outflow Initial Adjustment" [t] == 0.00000000 "kcfs" OR $ "Wells Constraints.Outflow Initial Adjustment" [t] == 9999.00000000 "kcfs" ) )\ THEN\ FALSE\ ELSE\ result\ ENDIF\ ENDFOR) DO\ IF_STATEMENT (NOT isDailyDischargeInput) THEN\ WITH_STATEMENT (NUMERIC endStorageCalc = ( GET @INDEX d FROM startStorageList ) + "SumFlowsToVolume"( $ "Wells Constraints.Inflow Estimate", dayStart, dayEnd ) - "SumFlowsToVolume"( $ "Wells Constraints.Outflow Initial", dayStart, dayEnd )) DO\ IF_STATEMENT (endStorageCalc > maxStorage) THEN\ DESCRIPTION "We would end up above the max storage, so we need to increase the Outflow Initial. Allocate
    the increase evenly across the timesteps in the day.";\ WITH_STATEMENT (NUMERIC excess = endStorageCalc - maxStorage) DO\ WITH_STATEMENT (NUMERIC hourlyOutflowIncrease = excess / ( ( LENGTH dayStart TO dayEnd ) * 1.00000000 "hr" )) DO\ FOREACH (DATETIME t IN dayStart TO dayEnd) DO\ IF_STATEMENT (IsNaN $ "Wells Constraints.Outflow Initial Adjustment" [t]) THEN\ $ "Wells Constraints.Outflow Initial" [t] := $ "Wells Constraints.Outflow Initial" [t] + hourlyOutflowIncrease;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ELSE\ IF_STATEMENT (endStorageCalc < minStorage) THEN\ DESCRIPTION "We would end up below the min storage, so we need to decrease the Outflow Initial. Allocate the
    decrease evenly across the timesteps in the day.";\ WITH_STATEMENT (NUMERIC excess = endStorageCalc - minStorage) DO\ WITH_STATEMENT (NUMERIC hourlyOutflowDecrease = ( excess / ( ( LENGTH dayStart TO dayEnd ) * 1.00000000 "hr" ) ) COMMENTED_BY "This value will be negative.") DO\ FOREACH (DATETIME t IN dayStart TO dayEnd) DO\ IF_STATEMENT (IsNaN $ "Wells Constraints.Outflow Initial Adjustment" [t]) THEN\ $ "Wells Constraints.Outflow Initial" [t] := "Max"( $ "Wells Constraints.Outflow Initial" [t] + hourlyOutflowDecrease COMMENTED_BY "This value will be negative.", 0.00000000 "kcfs" ) COMMENTED_BY "Check that it does not make the Outflow Initial negative.";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Set Wells Outflow Initial";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT "FourProjectCoordination"( );\ SET_VALUE_FLAG 64;\ NOTES "";\ BEGIN\ \ DESCRIPTION "We intentionally set these values with the R flag because later (or in a subsequent run) we need
    to distinguish between when they are actually inputs and when they were set by init rules.";\ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ WITH_STATEMENT (LIST dayTimesteps = "PreviousDate"( day, @"1:00:00" ) TO day) DO\ WITH_STATEMENT (BOOLEAN isDailyDischargeInput = FOR ( DATETIME t IN dayTimesteps ) WITH BOOLEAN result = TRUE DO\ IF ( ( NOT "IsInput"( $ "Wells Constraints.Daily Discharge Estimate", t ) OR $ "Wells Constraints.Daily Discharge Estimate" [t] == 0.00000000 "kcfs" OR $ "Wells Constraints.Daily Discharge Estimate" [t] == 9999.00000000 "kcfs" ) AND t >= @"Start Timestep" )\ THEN\ FALSE\ ELSE\ result\ ENDIF\ ENDFOR COMMENTED_BY "Is the Daily Discharge Estimate an input for all timesteps on this day?") DO\ WITH_STATEMENT (BOOLEAN isRequestInput = FOR ( DATETIME t IN dayTimesteps ) WITH BOOLEAN result = TRUE DO\ IF ( NOT "IsInput"( $ "Wells Constraints.Request", t ) OR $ "Wells Constraints.Request" [t] == 0.00000000 "MWH" OR $ "Wells Constraints.Request" [t] == 9999.00000000 "MWH" AND t >= @"Start Timestep" )\ THEN\ FALSE\ ELSE\ result\ ENDIF\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC dischargeEstDayAvg = IF ( ( day == "NextDate"( @"Start Timestep", @"24:00:00" ) AND @"Start Timestep" > @"1:00:00" ) COMMENTED_BY "Is this the first day?" )\ THEN\ ( "SumFlowsToVolume"( $ "Wells Constraints.Daily Discharge Estimate", "PreviousDate"( day, @"1:00:00" ), day ) - "SumFlowsToVolume"( $ "Wells.Outflow", "PreviousDate"( day, @"1:00:00" ), @"Start Timestep - 1" ) ) / ( day - @"Start Timestep - 1" )\ ELSE\ FOR ( DATETIME t IN dayTimesteps ) STAT_AVE\ $ "Wells Constraints.Daily Discharge Estimate" [t]\ ENDFOR\ ENDIF) DO\ WITH_STATEMENT (NUMERIC requestScaling = IF ( ( isRequestInput AND isDailyDischargeInput ) COMMENTED_BY "If we don't have inputs for both Daily Discharge and Request, then we just leave the scaling as
    1." )\ THEN\ WITH NUMERIC requestInitialFlowAvg = FOR ( DATETIME t IN "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" ) TO day ) STAT_AVE\ IF ( t >= @"Start Timestep" AND $ "Wells Constraints.Power Coefficient Approximation" [t] > 0.00000000 "MW/kcfs" )\ THEN\ $ "Wells Constraints.Request" [t] / ( $ "Wells Constraints.Power Coefficient Approximation" [t] * 1.00000000 "hr" )\ ELSE\ 0.00000000 "kcfs"\ ENDIF + $ "Wells Constraints.Spill Required" [t]\ ENDFOR DO\ IF ( requestInitialFlowAvg > 0.00000000 "kcfs" )\ THEN\ ( dischargeEstDayAvg / requestInitialFlowAvg ) COMMENTED_BY "Scale the Request based on the Daily Discharge when the Daily Discharge is an input."\ ELSE\ 1.00000000\ ENDIF\ ENDWITH\ ELSE\ 1.00000000\ ENDIF) DO\ WITH_STATEMENT (NUMERIC nonfedRequestDayAvg = FOR ( DATETIME t IN "DateMax"( "PreviousDate"( day, @"1:00:00" ), @"Start Timestep" ) TO day ) STAT_AVE\ $ "Requests.Total Nonfed Request" [t]\ ENDFOR) DO\ FOREACH (DATETIME t IN dayTimesteps) DO\ WITH_STATEMENT (NUMERIC outflowInit = IF ( t < @"Start Timestep" )\ THEN\ $ "Wells.Outflow" [t] COMMENTED_BY "For pre-run timesteps use the observed"\ ELSE\ IF ( ( "IsInput"( $ "Wells Constraints.Outflow Initial Adjustment", t ) AND $ "Wells Constraints.Outflow Initial Adjustment" [t] != 0.00000000 "kcfs" AND $ "Wells Constraints.Outflow Initial Adjustment" [t] != 9999.00000000 "kcfs" COMMENTED_BY "9999 kcfs used as a pseudo-NaN" ) COMMENTED_BY "If Outflow Initial Adjustment is an input, just use that (manual override)" )\ THEN\ $ "Wells Constraints.Outflow Initial Adjustment" [t]\ ELSE\ IF ( "IsInput"( $ "Wells Constraints.Outflow Hourly", t ) )\ THEN\ $ "Wells Constraints.Outflow Hourly" [t]\ ELSE\ IF ( "IsInput"( $ "Wells Constraints.Request", t ) )\ THEN\ ( IF ( $ "Wells Constraints.Power Coefficient Approximation" [t] > 0.00000000 "MW/kcfs" )\ THEN\ $ "Wells Constraints.Request" [t] / ( $ "Wells Constraints.Power Coefficient Approximation" [t] * 1.00000000 "hr" )\ ELSE\ 0.00000000 "kcfs"\ ENDIF + $ "Wells Constraints.Spill Required" [t] ) * requestScaling\ ELSE\ $ "Requests.Total Nonfed Request" [t] / nonfedRequestDayAvg * dischargeEstDayAvg\ ENDIF\ ENDIF\ ENDIF\ ENDIF) DO\ $ "Wells Constraints.Outflow Initial" [t] := outflowInit;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Wells Required Spill";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Wells" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC fishSpillManual = IF ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Manual" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Fish Spill Manual", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC specialOpsSpill = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Min Spill", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC specialOpsSoftSpill = IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Soft Min Spill" ), t ) )\ THEN\ "SlotValueFromDataObject"( res, "Special Operations Soft Min Spill", t )\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC defaultFishSpill = IF ( ( IsNaN "SlotFromDataObject"( res, "Fish Spill Manual" ) [t] OR "SlotFromDataObject"( res, "Fish Spill Manual" ) [t] == 0.00000000 "kcfs" ) AND ( "IsInput"( "SlotFromDataObject"( res, "Fish Spill Default" ), t ) AND "SlotFromDataObject"( res, "Fish Spill Default" ) [t] > 0.00000000 "kcfs" ) )\ THEN\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC spillExchangeSpill = IF ( res == % "Priest Rapids" )\ THEN\ $ "Priest Rapids Constraints.Spill Exchange Spill" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC requiredSpill = "MaxItem"( { fishSpillManual + spillExchangeSpill , specialOpsSpill , specialOpsSoftSpill , defaultFishSpill + spillExchangeSpill } )) DO\ "SlotFromDataObject"( res, "Spill Required" ) [t] := requiredSpill;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Wells Fish Spill Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule sets defalt fish spill values for the case that it is spill season but Fish Spill Manual got imported as zero
    (i.e. Central did not receive a spill signal from Douglas). If it is not fish spill season, these values will be zero. If
    Fish Spill Manual gets imported as something greater than zero, these values will not get used.";\ FOREACH (OBJECT res IN { % "Wells" }) DO\ FOREACH (DATETIME d IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ IF_STATEMENT ("IsActiveSeason"( res, "Summer Fish Spill Season", d )) THEN\ WITH_STATEMENT (NUMERIC outflowEstDayAvg = FOR ( DATETIME t IN "PreviousDate"( d, @"1:00:00" ) TO "NextDate"( d, @"24:00:00" ) ) STAT_AVE\ $ "Wells Constraints.Daily Discharge Estimate" [t]\ ENDFOR) DO\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := outflowEstDayAvg * "SlotFromDataObject"( res, "Summer Fish Spill Default Shape" ) [t];\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ ELSE\ FOREACH (DATETIME t IN "DateMax"( "PreviousDate"( d, @"1:00:00" ), @"Start Timestep" ) TO "DateMin"( d, @"Finish Timestep" )) DO\ "SlotFromDataObject"( res, "Fish Spill Default" ) [t] := 0.00000000 "kcfs";\ \ ENDFOREACH;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Set Wells Daily Discharge Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT "FourProjectCoordination"( );\ SET_VALUE_FLAG 64;\ NOTES "";\ BEGIN\ \ DESCRIPTION "We intentionally set these values with the R flag because later we need to distinguish between
    when they are actually inputs and when they were set by init rules.

    This is to establish the daily discharge estimate.";\ FOREACH (DATETIME t IN ( @"Start Timestep - 24" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ IF_STATEMENT (NOT "IsInput"( $ "Wells Constraints.Daily Discharge Estimate", t )) THEN\ IF_STATEMENT (( "IsInput"( $ "Wells Constraints.Outflow Initial Adjustment", t ) AND $ "Wells Constraints.Outflow Initial Adjustment" [t] != 0.00000000 "kcfs" AND $ "Wells Constraints.Outflow Initial Adjustment" [t] != 9999.00000000 "kcfs" COMMENTED_BY "9999 kcfs used as a pseudo-NaN" ) COMMENTED_BY "If Outflow Initial Adjustment is an input, just use that (manual override)") THEN\ $ "Wells Constraints.Daily Discharge Estimate" [t] := $ "Wells Constraints.Outflow Initial Adjustment" [t];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Wells Constraints.Outflow Hourly", t ) AND $ "Wells Constraints.Outflow Hourly" [t] != 0.00000000 "kcfs" AND $ "Wells Constraints.Outflow Hourly" [t] != 9999.00000000 "kcfs" COMMENTED_BY "9999 kcfs used as a pseudo-NaN") THEN\ $ "Wells Constraints.Daily Discharge Estimate" [t] := $ "Wells Constraints.Outflow Hourly" [t];\ \ ELSE\ WITH_STATEMENT (NUMERIC CHJDischLaggedPlusSideflow = "Lagged"( % "CHJ to WEL", IF ( t >= @"Start Timestep" )\ THEN\ $ "Chief Joseph Constraints.Outflow Initial"\ ELSE\ $ "Chief Joseph.Outflow"\ ENDIF, t ) COMMENTED_BY "Lagged CHJ Daily Discharge Estimate" + ( IF ( "IsInput"( $ "Okanogan River.Inflow", t ) )\ THEN\ $ "Okanogan River.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + IF ( "IsInput"( $ "Methow River.Inflow", t ) )\ THEN\ $ "Methow River.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF ) COMMENTED_BY "Tributary flows" + IF ( "IsInput"( $ "Wells.Hydrologic Inflow Adjust", t ) )\ THEN\ $ "Wells.Hydrologic Inflow Adjust" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF) DO\ $ "Wells Constraints.Daily Discharge Estimate" [t] := CHJDischLaggedPlusSideflow;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Wells Inflow Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( ) AND "FourProjectCoordination"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Wells" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC inflowEstimate = ( "Lagged"( % "CHJ to WEL", $ "Chief Joseph Constraints.Outflow Initial", t ) + IF ( "IsInput"( res & "Hydrologic Inflow Adjust", t ) )\ THEN\ res & "Hydrologic Inflow Adjust" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + ( IF ( "IsInput"( $ "Okanogan River.Inflow", t ) )\ THEN\ $ "Okanogan River.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + IF ( "IsInput"( $ "Methow River.Inflow", t ) )\ THEN\ $ "Methow River.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF ) )) DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ FOREACH (DATETIME t IN "PreviousDate"( @"Start Timestep", @"1:00:00" ) TO @"Start Timestep - 1") DO\ WITH_STATEMENT (NUMERIC inflowEstimate = ( "Lagged"( % "CHJ to WEL", $ "Chief Joseph.Outflow", t ) + IF ( "IsInput"( res & "Hydrologic Inflow Adjust", t ) )\ THEN\ res & "Hydrologic Inflow Adjust" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + ( IF ( "IsInput"( $ "Okanogan River.Inflow", t ) )\ THEN\ $ "Okanogan River.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF + IF ( "IsInput"( $ "Methow River.Inflow", t ) )\ THEN\ $ "Methow River.Inflow" [t]\ ELSE\ 0.00000000 "kcfs"\ ENDIF ) ) COMMENTED_BY "For Pre-run timesteps, we use the lagged upstream outflow (observed) plus side flows.") DO\ "SlotFromDataObject"( res, "Inflow Estimate" ) [t] := inflowEstimate;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Federal Initial Values";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Bias Flow Pre-run";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep - 4" TO @"Start Timestep - 1") DO\ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ "SlotFromDataObject"( res, "Bias Flow" ) [t] := 0.00000000 "kcfs";\ \ ENDFOREACH;\ \ $ "Chief Joseph Constraints.Bias Flow Combined" [t] := 0.00000000 "kcfs";\ \ ENDFOREACH;\ \ END;\ \ RULE "Power Coefficient Approximation";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "ListSubbasin"( "Reservoir" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ "SlotFromDataObject"( res, "Power Coefficient Approximation" ) [t] := IF ( "IsInput"( "SlotFromDataObject"( res, "Power Coefficient Approximation Manual" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Power Coefficient Approximation Manual" ) [t]\ ELSE\ "SlotFromDataObject"( res, "Power Coeff Line Approx" ) [t]\ ENDIF;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Power Coeff Line Approx";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN "ListSubbasin"( "Reservoir" )) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (NUMERIC powerCoeff = "TableInterpolation3D"( res & "Plant Power Table", 0.00000000, res & "Power LP Param" [0.00000000, 0.00000000], 1.00000000, res & "Power LP Param" [1.00000000, 2.00000000], 2.00000000, @"t" ) / res & "Power LP Param" [1.00000000, 2.00000000]) DO\ "SlotFromDataObject"( res, "Power Coeff Line Approx" ) [t] := powerCoeff;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Set Chief Joseph Outflow Initial";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME day IN "EndOfDay"( @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" ) )) DO\ WITH_STATEMENT (LIST dayTimesteps = "PreviousDate"( day, @"1:00:00" ) TO day) DO\ WITH_STATEMENT (NUMERIC dischargeEstDayAvg = FOR ( DATETIME t IN dayTimesteps ) STAT_AVE\ $ "Chief Joseph Constraints.Discharge Estimate" [t]\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC requestDayAvg = FOR ( DATETIME t IN dayTimesteps ) STAT_AVE\ $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t]\ ENDFOR) DO\ FOREACH (DATETIME t IN dayTimesteps) DO\ WITH_STATEMENT (NUMERIC outflowInit = IF ( t < @"Start Timestep" )\ THEN\ $ "Chief Joseph.Outflow" [t] COMMENTED_BY "For pre-run timesteps use the observed"\ ELSE\ IF ( ( "IsInput"( $ "Chief Joseph Constraints.Outflow Initial Adjustment", t ) AND $ "Chief Joseph Constraints.Outflow Initial Adjustment" [t] != 0.00000000 "kcfs" AND $ "Chief Joseph Constraints.Outflow Initial Adjustment" [t] != 9999.00000000 "kcfs" COMMENTED_BY "9999 kcfs used as a pseudo-NaN" ) COMMENTED_BY "If Outflow Initial Adjustment is an input, just use that (manual override)" )\ THEN\ $ "Chief Joseph Constraints.Outflow Initial Adjustment" [t]\ ELSE\ ( ( $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t] / requestDayAvg ) COMMENTED_BY "Request Ratio" * dischargeEstDayAvg ) COMMENTED_BY "Default Calculation: Shape the daily Discharge Estimate average based on the CHJ Request"\ ENDIF\ ENDIF) DO\ $ "Chief Joseph Constraints.Outflow Initial" [t] := outflowInit;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Set Chief Joseph Discharge Estimate";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN ( @"Start Timestep - 72" TO @"Finish Timestep + 48" )) DO\ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Discharge Estimate Adjustment", t ) AND $ "Chief Joseph Constraints.Discharge Estimate Adjustment" [t] != 0.00000000 "kcfs" AND $ "Chief Joseph Constraints.Discharge Estimate Adjustment" [t] != 9999.00000000 "kcfs" COMMENTED_BY "9999 kcfs used as a pseudo-NaN") THEN\ DESCRIPTION "If the Estimate Adjustment is an input (and not 0 or 9999), then we just use that, and we do not
    worry about the automatic adjustment.";\ $ "Chief Joseph Constraints.Discharge Estimate" [t] := $ "Chief Joseph Constraints.Discharge Estimate Adjustment" [t];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Chief Joseph Constraints.Discharge Estimate Initial", t )) THEN\ $ "Chief Joseph Constraints.Discharge Estimate" [t] := $ "Chief Joseph Constraints.Discharge Estimate Initial" [t];\ \ ELSE\ IF_STATEMENT ("IsInput"( $ "Priest Rapids Constraints.CHJ Forecast Outflow", t )) THEN\ $ "Chief Joseph Constraints.Discharge Estimate" [t] := $ "Priest Rapids Constraints.CHJ Forecast Outflow" [t];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Nonfed Request Adjustment";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Nonfed Request Peak Valley";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Determine if the hour is the max request or min request hour for the day. This gets used later by
    the balanced drafting policies. The Balanced Draft is only applied on the min and max request
    hours.

    To have more control over when the constraints get applied, for the min request hour we always look at hours 01 to 06 only. For the max request we look at hours 12 to 20 only.";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "For the max hour we find the hour with the max request between 12:00 and 20:00.";\ IF_STATEMENT (t == @"20:00:00" OR ( t == @"Finish Timestep" AND t < @"20:00:00" AND t >= @"12:00:00" )) THEN\ WITH_STATEMENT (LIST maxPeriodTimesteps = "DateMax"( "PreviousDate"( t, @"12:00:00" ), @"Start Timestep" ) TO t) DO\ WITH_STATEMENT (NUMERIC maxRequestVal = "MaxItem"( "GetSlotVals"( $ "Requests.Total Nonfed Request", "DateMax"( "PreviousDate"( t, @"12:00:00" ), @"Start Timestep" ), t ) )) DO\ FOREACH (DATETIME hour IN maxPeriodTimesteps) DO\ DESCRIPTION "If the hour has the max request, set the Peak Valley value to 1, otherwise 0.";\ $ "Nonfederal Data.Peak Valley" [hour] := IF ( $ "Requests.Total Nonfed Request" [hour] == maxRequestVal )\ THEN\ 1.00000000\ ELSE\ 0.00000000\ ENDIF;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "For the min hour we find the hour with the min request between 1:00 and 6:00.";\ IF_STATEMENT (t == @"6:00:00" OR ( t == @"Finish Timestep" AND t < @"6:00:00" )) THEN\ WITH_STATEMENT (LIST minPeriodTimesteps = "DateMax"( "PreviousDate"( t, @"1:00:00" ), @"Start Timestep" ) TO t) DO\ WITH_STATEMENT (NUMERIC minRequestVal = "MinItem"( "GetSlotVals"( $ "Requests.Total Nonfed Request", "DateMax"( "PreviousDate"( t, @"1:00:00" ), @"Start Timestep" ), t ) )) DO\ FOREACH (DATETIME hour IN minPeriodTimesteps) DO\ DESCRIPTION "If the hour has the min request, set the Peak Valley value to 2, otherwise 0.";\ $ "Nonfederal Data.Peak Valley" [hour] := IF ( $ "Requests.Total Nonfed Request" [hour] == minRequestVal )\ THEN\ 2.00000000\ ELSE\ 0.00000000\ ENDIF;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ELSE\ DESCRIPTION "Set all other hours to 0.";\ IF_STATEMENT (( t > @"6:00:00" AND t < @"12:00:00" ) OR t > @"20:00:00") THEN\ $ "Nonfederal Data.Peak Valley" [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Nonfed Request Adjustment";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ WITH_STATEMENT (SLOT standardRequestSlot = IF ( "IsInput"( $ "Requests.Nonfed Request Adjustment", t ) AND $ "Requests.Nonfed Request Adjustment" [t] != 0.00000000 "MWH" AND $ "Requests.Nonfed Request Adjustment" [t] != $ "Requests.Request NaN" [] )\ THEN\ $ "Requests.Nonfed Request Adjustment" COMMENTED_BY "If the Request Adjustment is an input (and not 0 or 9999), then we just use that."\ ELSE\ $ "Requests.Initial Nonfed Request"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC standardRequest = standardRequestSlot [t] * IF ( "FourProjectCoordination"( ) AND t < "NumberToDate"( $ "Nonfederal Data.Four Project Coordination Start Date" [] ) )\ THEN\ $ "Requests.Nonfed Request Fracton for 4 Project Coordination" []\ ELSE\ 1.00000000\ ENDIF COMMENTED_BY "We can remove this logic after the switch-over date. It is in here for now to facility testing by
    automatically scaling the Nonfed Reqeust, which will come in as a 5 projet request prior to the
    switch-over date.") DO\ WITH_STATEMENT (NUMERIC sumMaxGen = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t]\ ELSE\ "MaxItem"( "GetTableColumnVals"( res & "Plant Power Table", 2.00000000, 0.00000000, "NumRows"( res & "Plant Power Table" ) - 1.00000000 ) )\ ENDIF\ ENDFOR * 1.00000000 "hr") DO\ WITH_STATEMENT (NUMERIC sumMinGen = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) STAT_SUM\ IF ( "IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation" ), t ) )\ THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t]\ ELSE\ 0.00000000 "MW"\ ENDIF\ ENDFOR * 1.00000000 "hr") DO\ IF_STATEMENT (standardRequest > sumMaxGen) THEN\ $ "Requests.Total Nonfed Request" [t] := sumMaxGen COMMENTED_BY "The Request exceeds the sum of max gen, so we will reduce it to max gen and issue a warning
    message.";\ \ WARNING_STATEMENT standardRequestSlot CONCAT " on " CONCAT t CONCAT ", " CONCAT standardRequest CONCAT ", is greater than the sum of Special Operations Max Generation, " CONCAT sumMaxGen CONCAT ". " CONCAT $ "Requests.Total Nonfed Request" CONCAT " is being set to the sum of Max Generation.";\ \ ELSE\ IF_STATEMENT (standardRequest < sumMinGen) THEN\ $ "Requests.Total Nonfed Request" [t] := sumMinGen COMMENTED_BY "The Request is less than the sum of min gen, so we will increase it to min gen and issue a warning
    message.";\ \ WARNING_STATEMENT standardRequestSlot CONCAT " on " CONCAT t CONCAT ", " CONCAT standardRequest CONCAT " is less than the sum of Special Operations Min Generation, " CONCAT sumMinGen CONCAT ". " CONCAT $ "Requests.Total Nonfed Request" CONCAT " is being set to the sum of Min Generation.";\ \ ELSE\ DESCRIPTION "The Request Adjustment is within min and max gen, so we can use it.";\ $ "Requests.Total Nonfed Request" [t] := standardRequest;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Operational Season Dates";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Popoulate Operational Season Dates Agg Series Slot";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT TRUE;\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (NUMERIC i IN "GetNumbers"( 1.00000000, LENGTH "OperationalSeasonList"( ), 1.00000000 )) DO\ WITH_STATEMENT (NUMERIC p = ( i - 1.00000000 ) COMMENTED_BY "The list is zero-indexed") DO\ WITH_STATEMENT (OBJECT obj = GET @INDEX 0.00000000 FROM GET @INDEX p FROM "OperationalSeasonList"( )) DO\ WITH_STATEMENT (SLOT opsSlot = obj & ( ( GET @INDEX 1.00000000 FROM GET @INDEX p FROM "OperationalSeasonList"( ) ) CONCAT " Operations" )) DO\ WITH_STATEMENT (SLOT defaultSlot = obj & ( ( GET @INDEX 1.00000000 FROM GET @INDEX p FROM "OperationalSeasonList"( ) ) CONCAT " Default" )) DO\ IF_STATEMENT (NOT IsNaN opsSlot [0.00000000, 0.00000000] AND NOT IsNaN opsSlot [1.00000000, 0.00000000]) THEN\ $ "Dates.Operational Season Dates" [i, "Start"] := opsSlot [0.00000000, 0.00000000];\ \ $ "Dates.Operational Season Dates" [i, "End"] := opsSlot [1.00000000, 0.00000000];\ \ ELSE\ $ "Dates.Operational Season Dates" [i, "Start"] := defaultSlot [0.00000000, 0.00000000];\ \ $ "Dates.Operational Season Dates" [i, "End"] := defaultSlot [1.00000000, 0.00000000];\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Data Validation";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Stop Run for Data Validation";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ($ "Data Validation.Validation Stop Run Failures" [] > 0.00000000 OR $ "Data Validation.Validation Missing Data" [] > 0.00000000) THEN\ STOP_RUN_STATEMENT "Data Validation Failure";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Reset Data Validation Period";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "The purpose of this rule is to set the Validation Period back to the standard period in the case
    that the run is going to abort because of a data validation failure. In this case the Data Validation
    Extended Period script would not have a chance to return the setting to the normal period.";\ IF_STATEMENT ($ "Data Validation.Validation Stop Run Failures" [] > 0.00000000 OR $ "Data Validation.Validation Missing Data" [] > 0.00000000) THEN\ $ "Data Validation.Validation Use Extended Period" [] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "End Validation Summary Message";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WARNING_STATEMENT "End Data Validation Summary";\ \ END;\ \ RULE "Stop Run for Data Validation Warning Message";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ($ "Data Validation.Validation Stop Run Failures" [] > 0.00000000) THEN\ WARNING_STATEMENT "There are " CONCAT "IntegerToString"( ( $ "Data Validation.Validation Stop Run Failures" [] ) ) CONCAT " data validation failures that stopped the run. Review warning messages for details of slots with data validation failures.";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Stop Run for Missing Data Warning Message";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ IF_STATEMENT ($ "Data Validation.Validation Missing Data" [] > 0.00000000) THEN\ WARNING_STATEMENT "Data validation stopped the run due to missing data. Review warning messages for details of slots with missing data.";\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Count Total Data Validations";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WITH_STATEMENT (LIST categorySummarySlotList = { $ "Data Validation.Validation Special Operations Failures" , $ "Data Validation.Validation Special Operations Soft Failures" , $ "Data Validation.Validation Sideflow Failures" , $ "Data Validation.Validation Special Slots Failures" , $ "Data Validation.Validation Special Slots Warning Only Failures" } COMMENTED_BY "Include in this list the summary slot for all categories") DO\ WITH_STATEMENT (NUMERIC numTimesteps = LENGTH @"Start Timestep" TO IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF) DO\ WITH_STATEMENT (NUMERIC numVals = ( ( ( ( ( LENGTH "DataValidationSpecialOpeartionsSlotsNonfed"( ) SET_UNION "DataValidationSpecialOpeartionsSoftSlots"( ) SET_UNION "DataValidationSideFlowSlotsAllRes"( ) ) * LENGTH "NonFedReservoirs"( ) ) + ( ( LENGTH "DataValidationSpecialOpeartionsSlotsWANPRD"( ) ) * 2.00000000 ) + ( ( LENGTH "DataValidationSpecialOpeartionsSlotsFed"( ) ) * LENGTH "FederalReservoirs"( ) ) + LENGTH "DataValidationSpecialSlots"( ) SET_UNION "DataValidationSpecialSlotsWarningOnly"( ) ) * numTimesteps ) + FOR ( LIST validationSlot IN "DataValidationSpecialPeriodSlots"( ) SET_UNION "DataValidationSpecialPeriodSlotsWarningOnly"( ) ) STAT_SUM\ ( IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 AND ( GET @INDEX 4.00000000 FROM validationSlot ) >= @"Finish Timestep" )\ THEN\ "DateMax"( @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" [], GET @INDEX 4.00000000 FROM validationSlot )\ ELSE\ GET @INDEX 4.00000000 FROM validationSlot\ ENDIF COMMENTED_BY "Validation End" - ( GET @INDEX 3.00000000 FROM validationSlot ) COMMENTED_BY "Validation Start" + 1.00000000 "hr" ) / 1.00000000 "hr"\ ENDFOR COMMENTED_BY "Slots that are validated for timesteps outside of the run period" ) COMMENTED_BY "Slots that are validated for the run period (Start Timestep to Finish Timestep)") DO\ WITH_STATEMENT (NUMERIC numFailures = FOR ( SLOT countSlot IN categorySummarySlotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC numSuccesses = numVals - numFailures) DO\ $ "Data Validation.Total Values Validated" [] := numVals;\ \ $ "Data Validation.Total Values Passed" [] := numSuccesses;\ \ $ "Data Validation.Total Values Failed" [] := numFailures;\ \ WARNING_STATEMENT "Data validation successful for " CONCAT "IntegerToString"( numSuccesses ) CONCAT " of " CONCAT "IntegerToString"( numVals ) CONCAT " input values (" CONCAT "IntegerToString"( numFailures ) CONCAT " failures).";\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Stop Run Total Count Scalar";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Count the number of failures in slots that trigger a Stop Run if they fail validation.
    If this number is greater than zero, it will trigger a Stop Run in a later rule.

    ";\ WITH_STATEMENT (LIST stopRunCategorySlotList = { $ "Data Validation.Validation Special Operations Failures" , $ "Data Validation.Validation Special Operations Soft Failures" , $ "Data Validation.Validation Special Slots Failures" } COMMENTED_BY "Include in this list the summary slot for all categories that trigger Stop Run upon validation failure") DO\ DESCRIPTION "Count the number of failures in slots that trigger a Stop Run if they fail validation.";\ WITH_STATEMENT (NUMERIC failures = FOR ( SLOT countSlot IN stopRunCategorySlotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ $ "Data Validation.Validation Stop Run Failures" [] := failures;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Category Total Count Scalars";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Count the number of failures in each category by summing the summary scalar slots for each
    individiaual slot in the category. The set the value in a scalar slot. These get used later to count
    total failures.

    The slots are grouped by which report they correspond to.

    ----------------------------------------------------------
    Special Operations Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (LIST slotList = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) WITH LIST resultOuterLoop = { } DO\ FOR ( STRING slotName IN "DataValidationSpecialOpeartionsSlotsNonfed"( ) ) WITH LIST resultInnerLoop = resultOuterLoop DO\ APPEND "DataValidationCountSlotFromValidationSlot"( "DataValidationSlotFromResSlot"( res, slotName ) ) ONTO resultInnerLoop\ ENDFOR\ ENDFOR SET_UNION FOR ( OBJECT res IN { % "Wanapum" , % "Priest Rapids" } ) WITH LIST resultOuterLoop = { } DO\ FOR ( STRING slotName IN "DataValidationSpecialOpeartionsSlotsWANPRD"( ) ) WITH LIST resultInnerLoop = resultOuterLoop DO\ APPEND "DataValidationCountSlotFromValidationSlot"( "DataValidationSlotFromResSlot"( res, slotName ) ) ONTO resultInnerLoop\ ENDFOR\ ENDFOR SET_UNION FOR ( OBJECT res IN "FederalReservoirs"( ) ) WITH LIST resultOuterLoop = { } DO\ FOR ( STRING slotName IN "DataValidationSpecialOpeartionsSlotsFed"( ) ) WITH LIST resultInnerLoop = resultOuterLoop DO\ APPEND "DataValidationCountSlotFromValidationSlot"( "DataValidationSlotFromResSlot"( res, slotName ) ) ONTO resultInnerLoop\ ENDFOR\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC failures = FOR ( SLOT countSlot IN slotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ $ "Data Validation.Validation Special Operations Failures" [] := failures;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Special Operations Soft Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (LIST slotList = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) WITH LIST resultOuterLoop = { } DO\ FOR ( STRING slotName IN "DataValidationSpecialOpeartionsSoftSlots"( ) ) WITH LIST resultInnerLoop = resultOuterLoop DO\ APPEND "DataValidationCountSlotFromValidationSlot"( "DataValidationSlotFromResSlot"( res, slotName ) ) ONTO resultInnerLoop\ ENDFOR\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC failures = FOR ( SLOT countSlot IN slotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ $ "Data Validation.Validation Special Operations Soft Failures" [] := failures;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Sideflow Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (LIST slotList = FOR ( OBJECT res IN "NonFedReservoirs"( ) ) WITH LIST resultOuterLoop = { } DO\ FOR ( STRING slotName IN "DataValidationSideFlowSlotsAllRes"( ) ) WITH LIST resultInnerLoop = resultOuterLoop DO\ APPEND "DataValidationCountSlotFromValidationSlot"( "DataValidationSlotFromResSlot"( res, slotName ) ) ONTO resultInnerLoop\ ENDFOR\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC failures = FOR ( SLOT countSlot IN slotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ $ "Data Validation.Validation Sideflow Failures" [] := failures;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Special Slots Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (LIST slotList = FOR ( LIST inputSlotAsList IN "DataValidationSpecialSlots"( ) SET_UNION "DataValidationSpecialPeriodSlots"( ) ) WITH LIST specialSlots = { } DO\ APPEND "DataValidationCountSlotFromValidationSlot"( ( GET @INDEX 1.00000000 FROM inputSlotAsList ) COMMENTED_BY "Object" & ( ( GET @INDEX 2.00000000 FROM inputSlotAsList ) COMMENTED_BY "Slot Name" ) ) ONTO specialSlots\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC failures = FOR ( SLOT countSlot IN slotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ $ "Data Validation.Validation Special Slots Failures" [] := failures;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Special Slots that issue warnings only Validation Report
    ----------------------------------------------------------";\ IF_STATEMENT ("DataValidationSpecialSlotsWarningOnly"( ) != { } OR "DataValidationSpecialPeriodSlotsWarningOnly"( ) != { }) THEN\ WITH_STATEMENT (LIST slotList = FOR ( LIST inputSlotAsList IN "DataValidationSpecialSlotsWarningOnly"( ) SET_UNION "DataValidationSpecialPeriodSlotsWarningOnly"( ) ) WITH LIST specialSlots = { } DO\ APPEND "DataValidationCountSlotFromValidationSlot"( ( GET @INDEX 1.00000000 FROM inputSlotAsList ) COMMENTED_BY "Object" & ( ( GET @INDEX 2.00000000 FROM inputSlotAsList ) COMMENTED_BY "Slot Name" ) ) ONTO specialSlots\ ENDFOR) DO\ WITH_STATEMENT (NUMERIC failures = FOR ( SLOT countSlot IN slotList ) STAT_SUM\ countSlot []\ ENDFOR) DO\ $ "Data Validation.Validation Special Slots Warning Only Failures" [] := failures;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END;\ \ RULE "Data Validation Slot Summary Count Scalars";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule counts the number of failures in each slot that has gone through validation and sets the
    value in a scalar slot.
    If there are failures, post a warning message.
    The slots are grouped by which report they correspond to so that the appropriate report name
    can be included in the warning message.

    ----------------------------------------------------------
    Special Operations Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (STRING reportName = "Special Operations Validation") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "Check all Special Operations slots that are the same for all NonFed Res Constraints objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSlotsNonfed"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ DESCRIPTION "This is for Wanapum and Priest Rapids Specials Ops with and without Participant Constraints.";\ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSlotsWANPRD"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ DESCRIPTION "Check all Special Operations slots for Federal reservoirs";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSlotsFed"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Special Operations Soft Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (STRING reportName = "Special Operations Soft Validation") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "Check all Special Operations Soft slots that are the same for all NonFed Res Constraints objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSoftSlots"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Sideflow Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (STRING reportName = "Sideflow Validation") DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "Check all of the Sideflow slots that are the same for all NonFed Reservoir objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSideFlowSlotsAllRes"( )) DO\ WITH_STATEMENT (SLOT inputSlot = res & inputSlotName) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Special Slots Validation Report
    ----------------------------------------------------------";\ WITH_STATEMENT (STRING reportName = "Special Slots Validation") DO\ DESCRIPTION "Now do the checks for all special slots.";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialSlots"( )) DO\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Now do the checks for all special slots that only issue a warning (do not stop the run)";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialSlotsWarningOnly"( )) DO\ IF_STATEMENT (inputSlotList != { }) THEN\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, @"Start Timestep", IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ DESCRIPTION "
    ----------------------------------------------------------
    Slots that are imported for a period other than Start Timestep to Finish Timestep
    ----------------------------------------------------------";\ WITH_STATEMENT (STRING reportName = "Special Slots Validation") DO\ DESCRIPTION "Now do the checks for all slots imported for a special period (not Start Timestep to Finish Timestep)";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialPeriodSlots"( )) DO\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (DATETIME validationStart = GET @INDEX 3.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (DATETIME validationEnd = IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 AND ( GET @INDEX 4.00000000 FROM inputSlotList ) >= @"Finish Timestep" )\ THEN\ "DateMax"( @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" [], GET @INDEX 4.00000000 FROM inputSlotList )\ ELSE\ GET @INDEX 4.00000000 FROM inputSlotList\ ENDIF) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, validationStart, validationEnd )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Now do the checks for all slots imported for a special period (not Start Timestep to Finish Timestep) that only
    issue a warning (do not stop the run)";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialPeriodSlotsWarningOnly"( )) DO\ IF_STATEMENT (inputSlotList != { }) THEN\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (DATETIME validationStart = GET @INDEX 3.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (DATETIME validationEnd = IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 AND ( GET @INDEX 4.00000000 FROM inputSlotList ) >= @"Finish Timestep" )\ THEN\ "DateMax"( @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" [], GET @INDEX 4.00000000 FROM inputSlotList )\ ELSE\ GET @INDEX 4.00000000 FROM inputSlotList\ ENDIF) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT countSlotName = "DataValidationCountSlotFromValidationSlot"( validationSlot )) DO\ WITH_STATEMENT (NUMERIC failureCount = "SumSlot"( validationSlot, validationStart, validationEnd )) DO\ countSlotName [] := failureCount;\ \ IF_STATEMENT (failureCount > 0.00000000) THEN\ WARNING_STATEMENT "DataValidationSlotFailureCountWarningMessage"( inputSlot, failureCount, reportName );\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Special Period Slots";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Check all special slots that are required inputs for a period other than the Start Timestep to Finish Timestep";\ WITH_STATEMENT (STRING reportName = "Special Slots Validation") DO\ DESCRIPTION "Check all special slots that are required inputs for a period other than the Start Timestep to Finish Timestep
    These are slots that will stop the run for a validation failure.";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialPeriodSlots"( )) DO\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT maxSlot = dataValidationObj & ( validationSlotName CONCAT " Max" )) DO\ WITH_STATEMENT (SLOT minSlot = dataValidationObj & ( validationSlotName CONCAT " Min" )) DO\ WITH_STATEMENT (DATETIME validationStart = GET @INDEX 3.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (DATETIME validationEnd = IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 AND ( GET @INDEX 4.00000000 FROM inputSlotList ) >= @"Finish Timestep" )\ THEN\ "DateMax"( @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" [], GET @INDEX 4.00000000 FROM inputSlotList )\ ELSE\ GET @INDEX 4.00000000 FROM inputSlotList\ ENDIF) DO\ FOREACH (DATETIME t IN validationStart TO validationEnd) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Check all special slots that are required inputs for a period other than the Start Timestep to Finish Timestep for
    which we only want to issue a warning, not stop the run";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialPeriodSlotsWarningOnly"( )) DO\ DESCRIPTION "Make sure we do not have an empty list";\ IF_STATEMENT (inputSlotList != { }) THEN\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT maxSlot = dataValidationObj & ( validationSlotName CONCAT " Max" )) DO\ WITH_STATEMENT (SLOT minSlot = dataValidationObj & ( validationSlotName CONCAT " Min" )) DO\ WITH_STATEMENT (DATETIME validationStart = GET @INDEX 3.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (DATETIME validationEnd = IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ "DateMax"( @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" [], GET @INDEX 4.00000000 FROM inputSlotList )\ ELSE\ GET @INDEX 4.00000000 FROM inputSlotList\ ENDIF) DO\ FOREACH (DATETIME t IN validationStart TO validationEnd) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Special Slots Run Period Timesteps";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Check special slots that are not common to all reservoirs and are in their own category.";\ WITH_STATEMENT (STRING reportName = "Special Slots Validation") DO\ WITH_STATEMENT (LIST validationTimesteps = @"Start Timestep" TO IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF) DO\ DESCRIPTION "These are slots that will stop the run for a validation failure.";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialSlots"( )) DO\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT maxSlot = dataValidationObj & ( validationSlotName CONCAT " Max" )) DO\ WITH_STATEMENT (SLOT minSlot = dataValidationObj & ( validationSlotName CONCAT " Min" )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Check all special slots that are not common to all reservoirs for which we only want to issue a warning, not stop
    the run";\ FOREACH (LIST inputSlotList IN "DataValidationSpecialSlotsWarningOnly"( )) DO\ DESCRIPTION "Make sure we do not have an empty list";\ IF_STATEMENT (inputSlotList != { }) THEN\ WITH_STATEMENT (SLOT inputSlot = GET @INDEX 0.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (OBJECT dataValidationObj = GET @INDEX 1.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (STRING validationSlotName = GET @INDEX 2.00000000 FROM inputSlotList) DO\ WITH_STATEMENT (SLOT validationSlot = dataValidationObj & validationSlotName) DO\ WITH_STATEMENT (SLOT maxSlot = dataValidationObj & ( validationSlotName CONCAT " Max" )) DO\ WITH_STATEMENT (SLOT minSlot = dataValidationObj & ( validationSlotName CONCAT " Min" )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Sideflow Slots All Timesteps";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Check all side flow values.
    The first set uses the form for slots that are common to all Reservoir objects.
    The second set are special slots that are not common to all reservoirs.";\ WITH_STATEMENT (STRING reportName = "Sideflow Validation") DO\ WITH_STATEMENT (LIST validationTimesteps = @"Start Timestep" TO IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF) DO\ FOREACH (OBJECT res IN "ListSubbasin"( "Reservoir" )) DO\ DESCRIPTION "Check all of the Sideflow slots that are the same for all NonFed Reservoir objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSideFlowSlotsAllRes"( )) DO\ WITH_STATEMENT (SLOT inputSlot = res & inputSlotName) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT maxSlot = "DataValidationMaxSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT minSlot = "DataValidationMinSlotFromResSlot"( res, inputSlotName )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Special Ops Soft Slots All Timesteps";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Check all Special Operations Soft slots.
    These will trigger a Stop Run later if they fail validation.
    This rule uses the form for slots that are common to all Reservor Consrtraints data objects.
    This includes checks that each Min is less than or equal to the corresponding Max.";\ WITH_STATEMENT (STRING reportName = "Special Operations Soft Validation") DO\ WITH_STATEMENT (LIST validationTimesteps = @"Start Timestep" TO IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF) DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "Check all of the Special Operations Soft slots that are the same for all NonFed Res Constraints
    objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSoftSlots"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT maxSlot = "DataValidationMaxSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT minSlot = "DataValidationMinSlotFromResSlot"( res, inputSlotName )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Also check that the Min and Max are not in conflict.";\ WITH_STATEMENT (LIST correspondingSlotList = "SpecialOperationsSoftCorrespondingMinMaxSlot"( inputSlotName )) DO\ WITH_STATEMENT (STRING MinOrMax = GET @INDEX 1.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (STRING correspondingSlotName = GET @INDEX 0.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (SLOT correspondingSlot = "SlotFromDataObject"( res, correspondingSlotName )) DO\ IF_STATEMENT (MinOrMax == "Min") THEN\ DESCRIPTION "The slot we are currently checking is a Min.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] > correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Min value was greater than the corresponding input Max
    value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "The slot we are currently checking is a Max.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] < correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Max value was less than the corresponding input Min value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Special Ops Slots All Timesteps";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Check all Special Operations slots.
    These will trigger a Stop Run later if they fail validation.
    This rule uses the form for slots that are common to all Reservor Consrtraints data objects.
    This includes checks that each Min is less than or equal to the corresponding Max.";\ WITH_STATEMENT (STRING reportName = "Special Operations Validation") DO\ WITH_STATEMENT (LIST validationTimesteps = @"Start Timestep" TO IF ( $ "Data Validation.Validation Use Extended Period" [] == 1.00000000 )\ THEN\ @"Start Timestep - 1" + $ "Data Validation.Validation Extended Period" []\ ELSE\ @"Finish Timestep"\ ENDIF) DO\ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ DESCRIPTION "Check all of the Special Operations slots that are the same for all NonFed Res Constraints
    objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSlotsNonfed"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT maxSlot = "DataValidationMaxSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT minSlot = "DataValidationMinSlotFromResSlot"( res, inputSlotName )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Also check that the Min and Max are not in conflict.";\ WITH_STATEMENT (LIST correspondingSlotList = "SpecialOperationsCorrespondingMinMaxSlot"( inputSlotName )) DO\ WITH_STATEMENT (STRING MinOrMax = GET @INDEX 1.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (STRING correspondingSlotName = GET @INDEX 0.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (SLOT correspondingSlot = "SlotFromDataObject"( res, correspondingSlotName )) DO\ IF_STATEMENT (MinOrMax == "Min") THEN\ DESCRIPTION "The slot we are currently checking is a Min.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] > correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Min value was greater than the corresponding input Max
    value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "The slot we are currently checking is a Max.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] < correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Max value was less than the corresponding input Min value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ DESCRIPTION "This is for Wanapum and Priest Rapids Specials Ops with and without Participant Constraints.";\ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ DESCRIPTION "Check all of the Special Operations slots that are the same for all NonFed Res Constraints
    objects.";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSlotsWANPRD"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT maxSlot = "DataValidationMaxSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT minSlot = "DataValidationMinSlotFromResSlot"( res, inputSlotName )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Also check that the Min and Max are not in conflict.";\ WITH_STATEMENT (LIST correspondingSlotList = "SpecialOperationsCorrespondingMinMaxSlotWANPRD"( inputSlotName )) DO\ WITH_STATEMENT (STRING MinOrMax = GET @INDEX 1.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (STRING correspondingSlotName = GET @INDEX 0.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (SLOT correspondingSlot = "SlotFromDataObject"( res, correspondingSlotName )) DO\ IF_STATEMENT (MinOrMax == "Min") THEN\ DESCRIPTION "The slot we are currently checking is a Min.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] > correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Min value was greater than the corresponding input Max
    value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "The slot we are currently checking is a Max.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] < correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Max value was less than the corresponding input Min value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ FOREACH (OBJECT res IN "FederalReservoirs"( )) DO\ DESCRIPTION "Check all of the Federal Special Operations slots";\ FOREACH (STRING inputSlotName IN "DataValidationSpecialOpeartionsSlotsFed"( )) DO\ WITH_STATEMENT (SLOT inputSlot = "SlotFromDataObject"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT validationSlot = "DataValidationSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT maxSlot = "DataValidationMaxSlotFromResSlot"( res, inputSlotName )) DO\ WITH_STATEMENT (SLOT minSlot = "DataValidationMinSlotFromResSlot"( res, inputSlotName )) DO\ FOREACH (DATETIME t IN validationTimesteps) DO\ IF_STATEMENT (IsNaN inputSlot [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationMissingDataWarningMessage"( inputSlot, t, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN maxSlot [] AND inputSlot [t] > maxSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Max", maxSlot, reportName );\ \ ELSE\ IF_STATEMENT (NOT IsNaN minSlot [] AND inputSlot [t] < minSlot []) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationExceedanceWarningMessage"( inputSlot, t, "Min", minSlot, reportName );\ \ ELSE\ DESCRIPTION "Also check that the Min and Max are not in conflict.";\ WITH_STATEMENT (LIST correspondingSlotList = "SpecialOperationsCorrespondingMinMaxSlot"( inputSlotName )) DO\ WITH_STATEMENT (STRING MinOrMax = GET @INDEX 1.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (STRING correspondingSlotName = GET @INDEX 0.00000000 FROM correspondingSlotList) DO\ WITH_STATEMENT (SLOT correspondingSlot = "SlotFromDataObject"( res, correspondingSlotName )) DO\ IF_STATEMENT (MinOrMax == "Min") THEN\ DESCRIPTION "The slot we are currently checking is a Min.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] > correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Min value was greater than the corresponding input Max
    value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "The slot we are currently checking is a Max.";\ IF_STATEMENT (( NOT IsNaN correspondingSlot [t] ) COMMENTED_BY "This NOT IsNaN is just to prevent the
    rule from terminating early if the value
    is missing. A separate check on this
    slot will catch the missing data." AND inputSlot [t] < correspondingSlot [t]) THEN\ DESCRIPTION "Validation failed because the input Max value was less than the corresponding input Min value.";\ validationSlot [t] := 1.00000000;\ \ WARNING_STATEMENT "DataValidationConflictingMinMaxWarningMessage"( inputSlot, t, MinOrMax, correspondingSlot, reportName );\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ validationSlot [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END_WITH_STATEMENT;\ \ END_WITH_STATEMENT;\ \ END;\ \ RULE "Data Validation Basic Example";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "This rule is included for illustration only to show what the next rule wiould look like if written out
    explicitly rather than looping over elements in list.";\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ DESCRIPTION "------------------------------------------------------------
    Check Wells Special Operations Max Pool Elevation
    ------------------------------------------------------------";\ IF_STATEMENT (IsNaN $ "Wells Constraints.Special Operations Max Pool Elevation" [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ $ "Wells Data Validation.Special Operations Max Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Max Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is missing expected data. See Report: Special Operations Validation";\ \ ELSE\ IF_STATEMENT (NOT IsNaN $ "Wells Data Validation.Special Operations Max Pool Elevation Max" [t] AND $ "Wells Constraints.Special Operations Max Pool Elevation" [t] > $ "Wells Data Validation.Special Operations Max Pool Elevation Max" [t]) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ $ "Wells Data Validation.Special Operations Max Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Max Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is greater than the validation criteria of " CONCAT ( $ "Wells Data Validation.Special Operations Max Pool Elevation Max" [t] ) CONCAT ". See Report: Special Operations Validation";\ \ ELSE\ IF_STATEMENT (NOT IsNaN $ "Wells Data Validation.Special Operations Max Pool Elevation Min" [t] AND $ "Wells Constraints.Special Operations Max Pool Elevation" [t] < $ "Wells Data Validation.Special Operations Max Pool Elevation Min" [t]) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ $ "Wells Data Validation.Special Operations Max Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Max Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is less than the validation criteria of " CONCAT ( $ "Wells Data Validation.Special Operations Max Pool Elevation Min" [t] ) CONCAT ". See Report: Special Operations Validation";\ \ ELSE\ IF_STATEMENT ($ "Wells Constraints.Special Operations Max Pool Elevation" [t] < $ "Wells Constraints.Special Operations Min Pool Elevation" [t]) THEN\ DESCRIPTION "Validation failed because the input max was less than the input min.";\ $ "Wells Data Validation.Special Operations Max Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Max Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is less than " CONCAT $ "Wells Constraints.Special Operations Min Pool Elevation" CONCAT ". See Report: Special Operations Validation";\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ $ "Wells Data Validation.Special Operations Max Pool Elevation" [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ DESCRIPTION "------------------------------------------------------------
    Check Wells Special Operations Min Pool Elevation
    ------------------------------------------------------------";\ IF_STATEMENT (IsNaN $ "Wells Constraints.Special Operations Min Pool Elevation" [t]) THEN\ DESCRIPTION "Missing data, we will stop the run";\ $ "Data Validation.Validation Missing Data" [] := 1.00000000;\ \ $ "Wells Data Validation.Special Operations Min Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Min Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is missing expected data. See Report: Special Operations Validation";\ \ ELSE\ IF_STATEMENT (NOT IsNaN $ "Wells Data Validation.Special Operations Min Pool Elevation Max" [t] AND $ "Wells Constraints.Special Operations Min Pool Elevation" [t] > $ "Wells Data Validation.Special Operations Min Pool Elevation Max" [t]) THEN\ DESCRIPTION "Validation failed because the input data value was greater than the validation max.";\ $ "Wells Data Validation.Special Operations Min Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Min Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is greater than the validation criteria of " CONCAT ( $ "Wells Data Validation.Special Operations Min Pool Elevation Max" [t] ) CONCAT ". See Report: Special Operations Validation";\ \ ELSE\ IF_STATEMENT (NOT IsNaN $ "Wells Data Validation.Special Operations Min Pool Elevation Min" [t] AND $ "Wells Constraints.Special Operations Min Pool Elevation" [t] < $ "Wells Data Validation.Special Operations Min Pool Elevation Min" [t]) THEN\ DESCRIPTION "Validation failed because the input data value was less than the validation min.";\ $ "Wells Data Validation.Special Operations Min Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Min Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is less than the validation criteria of " CONCAT ( $ "Wells Data Validation.Special Operations Min Pool Elevation Min" [t] ) CONCAT ". See Report: Special Operations Validation";\ \ ELSE\ IF_STATEMENT ($ "Wells Constraints.Special Operations Max Pool Elevation" [t] < $ "Wells Constraints.Special Operations Min Pool Elevation" [t]) THEN\ DESCRIPTION "Validation failed because the input max was less than the input min.";\ $ "Wells Data Validation.Special Operations Min Pool Elevation" [t] := 1.00000000;\ \ WARNING_STATEMENT $ "Wells Constraints.Special Operations Min Pool Elevation" CONCAT " on " CONCAT t CONCAT ", is greater than " CONCAT $ "Wells Constraints.Special Operations Max Pool Elevation" CONCAT ". See Report: Special Operations Validation";\ \ ELSE\ DESCRIPTION "Validation is successful. (Within min and max.)";\ $ "Wells Data Validation.Special Operations Min Pool Elevation" [t] := 0.00000000;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Initialze Missing Data Slot";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "We initialize this slot to 0.
    If it gets set to 1 in a later rule due to missing data, it will trigger a Stop Run at the end of the
    data validation.";\ $ "Data Validation.Validation Missing Data" [] := 0.00000000;\ \ END;\ \ RULE "Begin Validation Summary Message";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ WARNING_STATEMENT "Begin Data Validation Summary";\ \ END;\ \ END;\ \ POLICY_GROUP "Temporary HE3 Fix";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Temporary HE3 Fix";\ DESCRIPTION "";\ ACTIVE FALSE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ INACTIVE DESCRIPTION "HE3 doesn't exist outside of RiverWare, so data needed to be shifted one hour. From HE2
    2017-03-12 to Init hour, copies value into next hour.

    Special Operations Max Generation";\ FOREACH (OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] == 0.00000000 "MW") THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t - 1.00000000 "hr"];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ INACTIVE DESCRIPTION "Copies one hour ahead from HE2 2017-03-12 to Init Hour
    ";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Start Timestep" - 1.00000000 "hr") DO\ $ "Nonfederal Data.RW Testing 2" [t] := $ "Nonfederal Data.RW Testing 2" [t - 1.00000000 "hr"];\ \ DESCRIPTION "Regulated Spill";\ $ "Grand Coulee.Regulated Spill" [t] := $ "Grand Coulee.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph.Regulated Spill" [t] := $ "Chief Joseph.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Wells.Regulated Spill" [t] := $ "Wells.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Rocky Reach.Regulated Spill" [t] := $ "Rocky Reach.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Rock Island.Regulated Spill" [t] := $ "Rock Island.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Wanapum.Regulated Spill" [t] := $ "Wanapum.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Priest Rapids.Regulated Spill" [t] := $ "Priest Rapids.Regulated Spill" [t - 1.00000000 "hr"];\ \ DESCRIPTION "Outflows";\ $ "Grand Coulee.Outflow" [t] := $ "Grand Coulee.Outflow" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph.Outflow" [t] := $ "Chief Joseph.Outflow" [t - 1.00000000 "hr"];\ \ $ "Wells.Outflow" [t] := $ "Wells.Outflow" [t - 1.00000000 "hr"];\ \ $ "Rocky Reach.Outflow" [t] := $ "Rocky Reach.Outflow" [t - 1.00000000 "hr"];\ \ $ "Rock Island.Outflow" [t] := $ "Rock Island.Outflow" [t - 1.00000000 "hr"];\ \ $ "Wanapum.Outflow" [t] := $ "Wanapum.Outflow" [t - 1.00000000 "hr"];\ \ $ "Priest Rapids.Outflow" [t] := $ "Priest Rapids.Outflow" [t - 1.00000000 "hr"];\ \ $ "Grand Coulee.Tailwater Elevation" [t] := $ "Grand Coulee.Tailwater Elevation" [t - 1.00000000 "hr"];\ \ PRINT "t= " CONCAT t;\ \ $ "Grand Coulee Constraints.Bias Actual" [t] := $ "Grand Coulee Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph Constraints.Bias Actual" [t] := $ "Chief Joseph Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ ENDFOREACH;\ \ INACTIVE DESCRIPTION "Bias Actual";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Start Timestep" - 2.00000000 "hr") DO\ $ "Grand Coulee Constraints.Bias Actual" [t] := $ "Grand Coulee Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph Constraints.Bias Actual" [t] := $ "Chief Joseph Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ ENDFOREACH;\ \ INACTIVE FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Finish Timestep" + 24.00000000 "hr") DO\ DESCRIPTION "Grand Coulee Inflow
    ";\ IF_STATEMENT (IsNaN $ "Grand Coulee.Inflow" [t]) THEN\ $ "Grand Coulee.Inflow" [t] := $ "Grand Coulee.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Grand Coulee.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ DESCRIPTION "CHJ
    ";\ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t]) THEN\ $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t] := $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t - 1.00000000 "hr"];\ \ PRINT $ "Chief Joseph Constraints.Initial Uncoordinated Request" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ INACTIVE DESCRIPTION "Inflows
    ";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Finish Timestep" + 48.00000000 "hr") DO\ IF_STATEMENT (IsNaN $ "Okanogan River.Inflow" [t]) THEN\ $ "Okanogan River.Inflow" [t] := $ "Okanogan River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Okanogan River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Methow River.Inflow" [t]) THEN\ $ "Methow River.Inflow" [t] := $ "Methow River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Methow River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Entiat River.Inflow" [t]) THEN\ $ "Entiat River.Inflow" [t] := $ "Entiat River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Entiat River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Wenatchee River.Inflow" [t]) THEN\ $ "Wenatchee River.Inflow" [t] := $ "Wenatchee River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Wenatchee River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Crab Creek.Inflow" [t]) THEN\ $ "Crab Creek.Inflow" [t] := $ "Crab Creek.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Crab Creek.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Chelan River.Inflow" [t]) THEN\ $ "Chelan River.Inflow" [t] := $ "Chelan River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Chelan River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "HE3 doesn't exist outside of RiverWare, so data needed to be shifted one hour. From HE2
    2017-03-12 to Init hour, copies value into next hour.

    Special Operations Max Generation";\ FOREACH (OBJECT res IN { % "Wells" , % "Rocky Reach" , % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] == 0.00000000 "MW") THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t - 1.00000000 "hr"];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix2";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ PRINT "Executed Temporary HE3 Fix2";\ \ DESCRIPTION "Copies one hour ahead from HE2 2017-03-12 to Init Hour
    ";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Start Timestep" - 1.00000000 "hr") DO\ PRINT "t= " CONCAT t;\ \ $ "Nonfederal Data.RW Testing 2" [t] := $ "Nonfederal Data.RW Testing 2" [t - 1.00000000 "hr"];\ \ DESCRIPTION "Regulated Spill";\ $ "Grand Coulee.Regulated Spill" [t] := $ "Grand Coulee.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph.Regulated Spill" [t] := $ "Chief Joseph.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Wells.Regulated Spill" [t] := $ "Wells.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Rocky Reach.Regulated Spill" [t] := $ "Rocky Reach.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Rock Island.Regulated Spill" [t] := $ "Rock Island.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Wanapum.Regulated Spill" [t] := $ "Wanapum.Regulated Spill" [t - 1.00000000 "hr"];\ \ $ "Priest Rapids.Regulated Spill" [t] := $ "Priest Rapids.Regulated Spill" [t - 1.00000000 "hr"];\ \ DESCRIPTION "Outflows";\ $ "Grand Coulee.Outflow" [t] := $ "Grand Coulee.Outflow" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph.Outflow" [t] := $ "Chief Joseph.Outflow" [t - 1.00000000 "hr"];\ \ $ "Wells.Outflow" [t] := $ "Wells.Outflow" [t - 1.00000000 "hr"];\ \ $ "Rocky Reach.Outflow" [t] := $ "Rocky Reach.Outflow" [t - 1.00000000 "hr"];\ \ $ "Rock Island.Outflow" [t] := $ "Rock Island.Outflow" [t - 1.00000000 "hr"];\ \ $ "Wanapum.Outflow" [t] := $ "Wanapum.Outflow" [t - 1.00000000 "hr"];\ \ $ "Priest Rapids.Outflow" [t] := $ "Priest Rapids.Outflow" [t - 1.00000000 "hr"];\ \ $ "Grand Coulee.Tailwater Elevation" [t] := $ "Grand Coulee.Tailwater Elevation" [t - 1.00000000 "hr"];\ \ $ "Grand Coulee Constraints.Bias Actual" [t] := $ "Grand Coulee Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph Constraints.Bias Actual" [t] := $ "Chief Joseph Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix2a Changed March 12 to March 15";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ PRINT "Executed Temporary HE3 Fix2a";\ \ DESCRIPTION "Copies one hour ahead from HE2 2017-03-12 to Init Hour
    Needed to change Mar 12 to Mar13, started to not work after midnight, don't know why. this is
    the third day after the short sunday without HE3. So advance two more days for PRD outflow,
    since it has a longer data stream back farther in time by two days. So then changed Mar 12 to
    Mar 15 so PRD Outflow would work";\ FOREACH (DATETIME t IN @"2:00:00 March 15, 2017" TO @"Start Timestep" - 1.00000000 "hr") DO\ PRINT "t= " CONCAT t;\ \ DESCRIPTION "Grand Coulee Outflow";\ IF_STATEMENT (IsNaN $ "Grand Coulee.Outflow" [t]) THEN\ $ "Grand Coulee.Outflow" [t] := $ "Grand Coulee.Outflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Grand Coulee.Outflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Grand Coulee.Outflow";\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Grand Coulee Outflow";\ IF_STATEMENT (IsNaN $ "Chief Joseph.Outflow" [t]) THEN\ $ "Chief Joseph.Outflow" [t] := $ "Chief Joseph.Outflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Chief Joseph.Outflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Chief Joseph.Outflow";\ \ END_IF_STATEMENT;\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ IF_STATEMENT (IsNaN res & "Outflow" [t]) THEN\ res & "Outflow" [t] := res & "Outflow" [t - 1.00000000 "hr"];\ \ PRINT "Executed NonFederal Reservoirs";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION " Priest Outflow";\ IF_STATEMENT (IsNaN $ "Priest Rapids.Outflow" [t]) THEN\ $ "Priest Rapids.Outflow" [t] := $ "Priest Rapids.Outflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Priest Rapids.Outflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Priest Rapids Outflow";\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Grand Coulee Outflow";\ IF_STATEMENT (IsNaN $ "Grand Coulee.Tailwater Elevation" [t]) THEN\ $ "Grand Coulee.Tailwater Elevation" [t] := $ "Grand Coulee.Tailwater Elevation" [t - 1.00000000 "hr"];\ \ PRINT $ "Grand Coulee.Tailwater Elevation" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Grand Coulee.Tailwater Elevation";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix2a1";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ PRINT "Executed Temporary HE3 Fix2a";\ \ DESCRIPTION "Copies one hour ahead from HE2 2017-03-12 to Init Hour
    ";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Start Timestep" - 1.00000000 "hr") DO\ PRINT "t= " CONCAT t;\ \ DESCRIPTION "Grand Coulee Outflow";\ IF_STATEMENT (IsNaN $ "Grand Coulee.Outflow" [t]) THEN\ $ "Grand Coulee.Outflow" [t] := $ "Grand Coulee.Outflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Grand Coulee.Outflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Grand Coulee.Outflow";\ \ END_IF_STATEMENT;\ \ DESCRIPTION "Grand Coulee Outflow";\ IF_STATEMENT (IsNaN $ "Chief Joseph.Outflow" [t]) THEN\ $ "Chief Joseph.Outflow" [t] := $ "Chief Joseph.Outflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Chief Joseph.Outflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Chief Joseph.Outflow";\ \ END_IF_STATEMENT;\ \ FOREACH (OBJECT res IN "NonFedReservoirs"( )) DO\ IF_STATEMENT (IsNaN res & "Outflow" [t]) THEN\ res & "Outflow" [t] := res & "Outflow" [t - 1.00000000 "hr"];\ \ PRINT "Executed NonFederal Reservoirs";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ DESCRIPTION "Grand Coulee Outflow";\ IF_STATEMENT (IsNaN $ "Grand Coulee.Tailwater Elevation" [t]) THEN\ $ "Grand Coulee.Tailwater Elevation" [t] := $ "Grand Coulee.Tailwater Elevation" [t - 1.00000000 "hr"];\ \ PRINT $ "Grand Coulee.Tailwater Elevation" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ PRINT "Executed Grand Coulee.Tailwater Elevation";\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix3";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Bias Actual";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Start Timestep" - 2.00000000 "hr") DO\ $ "Grand Coulee Constraints.Bias Actual" [t] := $ "Grand Coulee Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ $ "Chief Joseph Constraints.Bias Actual" [t] := $ "Chief Joseph Constraints.Bias Actual" [t - 1.00000000 "hr"];\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix4";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Finish Timestep" + 24.00000000 "hr") DO\ DESCRIPTION "Grand Coulee Inflow
    ";\ IF_STATEMENT (IsNaN $ "Grand Coulee.Inflow" [t]) THEN\ $ "Grand Coulee.Inflow" [t] := $ "Grand Coulee.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Grand Coulee.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ DESCRIPTION "CHJ
    ";\ IF_STATEMENT (IsNaN $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t]) THEN\ $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t] := $ "Chief Joseph Constraints.Initial Uncoordinated Request" [t - 1.00000000 "hr"];\ \ PRINT $ "Chief Joseph Constraints.Initial Uncoordinated Request" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ RULE "Temporary HE3 Fix5";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "Inflows
    ";\ FOREACH (DATETIME t IN @"2:00:00 March 12, 2017" TO @"Finish Timestep" + 48.00000000 "hr") DO\ IF_STATEMENT (IsNaN $ "Okanogan River.Inflow" [t]) THEN\ $ "Okanogan River.Inflow" [t] := $ "Okanogan River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Okanogan River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Methow River.Inflow" [t]) THEN\ $ "Methow River.Inflow" [t] := $ "Methow River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Methow River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Entiat River.Inflow" [t]) THEN\ $ "Entiat River.Inflow" [t] := $ "Entiat River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Entiat River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Wenatchee River.Inflow" [t]) THEN\ $ "Wenatchee River.Inflow" [t] := $ "Wenatchee River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Wenatchee River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Crab Creek.Inflow" [t]) THEN\ $ "Crab Creek.Inflow" [t] := $ "Crab Creek.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Crab Creek.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ IF_STATEMENT (IsNaN $ "Chelan River.Inflow" [t]) THEN\ $ "Chelan River.Inflow" [t] := $ "Chelan River.Inflow" [t - 1.00000000 "hr"];\ \ PRINT $ "Chelan River.Inflow" CONCAT ( "at t= " CONCAT t CONCAT t );\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Special Operations WAN and PRD";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Set Wanapum and Priest Rapids Special Ops";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ DESCRIPTION "2017-03-08 Revised Special Operations Min Generation w Par Con to wo Par Con to correct.
    Added Min Pool Elevation, and Max/Min Outflow, consolidated to one IsSpawningPeriod OR
    IsRearingPeriod, fixed all w and wo for consistency
    Updated 2017-03-06 This init rule is formulated in this manner due to the way that slots are
    mapped to EAS accounts. The Special Operations Max Pool Elevation w Par Con slot is
    mapped to the RES_MAX_FBAY_ELEV_FT account, and similar for generation. Schedulers
    enter special ops values in this account year round. During Fish Operations [RLF (Spawning
    Period) and Anti-Stranding Bands (Emergence Period Operations Mar 15-May 14, and Rearing
    Period Mar 15-Jun 15)], this account contains the most restrictive of 'true' special operations
    for maintenence or outages and Fish Operations guidance' values that get used in setting
    participant limits. The special operations constraints do not want the Fish Operations
    guidance' values, so duing RLF and Stranding Bands, schedulers also enter the 'true'
    constraint values in the RES_MAX_FBAY_ELEV_WO_FISH_OPS_FT, which is mapped to the
    Special Operations Max Pool Elevation wo Par Con slot (similar for generation). During fish
    operations, the Special Operations constraints use the values imported to the 'wo Par Con'
    slots. Outside of fish operations RLF and Anti-Stranding (Post Hatch period is not included in
    the RLF or Anti-stranding Operations), the schedulers do nothing in the accounts that are
    mapped to the 'wo Par Con' slots, so we need to populate the Special Operations slots with
    the values from the 'w Par Con' slots, which get values throughout the year.
    ";\ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep - 25" TO @"Finish Timestep") DO\ DESCRIPTION "2017-03-06c Changed first half of If (xx OR xx) statement from "IsPostHatchPeriod" to
    "IsRearingPeriod". We want to apply the participant constraints (Par Con) during the Post Hatch
    period, and not apply the Par Con during RLF and Stranding Bands. Kept the OR statement for
    easy editing later.
    ";\ IF_STATEMENT ("IsSpawningPeriod"( t )) THEN\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Generation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Pool Elevation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Pool Elevation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Pool Elevation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Outflow wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Outflow" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Outflow wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Outflow wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Outflow" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Outflow wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Generation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Pool Elevation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Pool Elevation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Pool Elevation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Outflow w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Outflow" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Outflow w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Outflow w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Outflow" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Outflow w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ INACTIVE DESCRIPTION "Updated 2017-03-06 This init rule is formulated in this manner due to the way that slots are mapped to EAS
    accounts. The Special Operations Max Pool Elevation w Par Con slot is mapped to the RES_MAX_FBAY_ELEV_FT
    account, and similar for generation. Schedulers enter special ops values in this account year round. During Fish
    Operations [RLF (Spawning Period) and Anti-Stranding Bands (Emergence Period Operations Mar 15-May 14, and
    Rearing Period Mar 15-Jun 15)], this account contains the most restrictive of 'true' special operations for
    maintenence or outages and Fish Operations guidance' values that get used in setting participant limits. The
    special operations constraints do not want the Fish Operations guidance' values, so duing RLF and Stranding
    Bands, schedulers also enter the 'true' constraint values in the RES_MAX_FBAY_ELEV_WO_FISH_OPS_FT, which is
    mapped to the Special Operations Max Pool Elevation wo Par Con slot (similar for generation). During fish
    operations, the Special Operations constraints use the values imported to the 'wo Par Con' slots. Outside of fish
    operations RLF and Anti-Stranding (Post Hatch period is not included in the RLF or Anti-stranding Operations), the
    schedulers do nothing in the accounts that are mapped to the 'wo Par Con' slots, so we need to populate the
    Special Operations slots with the values from the 'w Par Con' slots, which get values throughout the year.";\ FOREACH (OBJECT res IN { % "Wanapum" , % "Priest Rapids" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO @"Finish Timestep") DO\ IF_STATEMENT ("IsSpawningPeriod"( t )) THEN\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Pool Elevation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Generation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ ELSE\ DESCRIPTION "2017-03-06c Changed first half of If (xx OR xx) statement from "IsPostHatchPeriod" to
    "IsRearingPeriod". We want to apply the participant constraints (Par Con) during the Post Hatch
    period, and not apply the Par Con during RLF and Stranding Bands. Kept the OR statement for
    easy editing later.";\ IF_STATEMENT ("IsRearingPeriod"( t ) OR "IsRearingPeriod"( t )) THEN\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation wo Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Generation wo Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Pool Elevation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ ELSE\ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Generation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Generation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Min Generation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Min Generation" ) [t] := "SlotFromDataObject"( res, "Special Operations Min Generation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ IF_STATEMENT ("IsInput"( "SlotFromDataObject"( res, "Special Operations Max Pool Elevation w Par Con" ), t )) THEN\ "SlotFromDataObject"( res, "Special Operations Max Pool Elevation" ) [t] := "SlotFromDataObject"( res, "Special Operations Max Pool Elevation w Par Con" ) [t];\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Spill Exchange Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Populate Spill Exchange with Default";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ FOREACH (OBJECT res IN { % "Grand Coulee" , % "Chief Joseph" }) DO\ FOREACH (DATETIME t IN @"Start Timestep" TO "NextDate"( @"Finish Timestep", @"24:00:00" )) DO\ IF_STATEMENT (NOT "IsInput"( "SlotFromDataObject"( res, "Spill Exchange Energy" ), t )) THEN\ "SlotFromDataObject"( res, "Spill Exchange Energy" ) [t] := "SlotFromDataObject"( res, "Spill Exchange Energy Default" ) [];\ \ END_IF_STATEMENT;\ \ ENDFOREACH;\ \ ENDFOREACH;\ \ END;\ \ END;\ \ POLICY_GROUP "Initialize Success";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Initialize Success Slot";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ $ "Data Validation.Initialization Successful" [] := 1.00000000 COMMENTED_BY "1 inidicates failure. We will set it to zero at the end of the rules if all rules succeed.";\ \ END;\ \ END;\ \ POLICY_GROUP "Model Version";\ DESCRIPTION "";\ ACTIVE TRUE;\ NOTES "";\ BEGIN\ \ RULE "Report Model Version Number";\ DESCRIPTION "";\ ACTIVE TRUE;\ RULE_EXEC_CONSTRAINT NOT "IsControllerRBS"( );\ SET_VALUE_FLAG 262144;\ NOTES "";\ BEGIN\ \ PRINT "Model Version: " CONCAT ( "ModelVersion"( ) COMMENTED_BY "THis function contains the model version number. The version number should be updated in this
    function whenever the model is updated." );\ \ DESCRIPTION "After the switch-over date, we can remove this logic.";\ IF_STATEMENT ("FourProjectCoordination"( )) THEN\ PRINT "Running in 4 Project Coordination Mode";\ \ ELSE\ PRINT "Running in 5 Project Coordination Mode";\ \ END_IF_STATEMENT;\ \ END;\ \ END;\ \ END\ } $ws initRulesSetValueMapCmd {Rock Island Constraints.Fish Spill Default} 1 - 72 8 $ws initRulesSetValueMapCmd {Rocky Reach Constraints.Fish Spill Default} 1 - 72 8 $ws initRulesSetValueMapCmd {Wells Constraints.Fish Spill Default} 1 - 72 7 # Section: RPL Display Settings Section {RPL Display Settings} "$ws.RplDisplaySettings" {\ MS Shell Dlg 2,8.25,-1,5,50,0,0,0,0,0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ } # Section: Script Manager Section {Script Manager} # Script: Data Validation Extended Period $ws.rwScriptMgr rwScript {\ \ Data Validation Extended Period\ \ 256\ \ SetScalarSlot\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueSet to Use Extended Data Validation Period\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetScalarSlotValueSlotSel\ \ Value\ RootSelection Version1 \\ RootSel_Name "Set Scalar Slot Value Action: Slot Selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_IS_CUSTOM ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_SimObjClass "DataObj" \\ RootSel_SimObjClass "SnapShotObj" \\ RootSel_SimObj "Data Validation" \\ RootSel_Slot "Data Validation.Validation Use Extended Period" \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierSetScalarSlotValueSlotValue\ Value1.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEditOption\ ValueNo\ TypeEnumeration\ DefaultValueNo\ OptionNo\ OptionYes: Editor\ OptionYes: Radio Buttons\ OptionYes: Slider\ \ \ IdentifierSetScalarSlotValueMinEditValue\ ValueNaN\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueMaxEditValue\ ValueNaN\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEncodeSlotName\ Value\ TypeSlotName\ DefaultValue\ \ \ IdentifierSetScalarSlotValueShowCurVal\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueSimulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueSimulation Run Only for Data Validation\ TypeSingleLineText\ DefaultValue\ \ \ \ SetScalarSlot\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueReturn Data Validation to Normal Period\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetScalarSlotValueSlotSel\ \ Value\ RootSelection Version1 \\ RootSel_Name "Set Scalar Slot Value Action: Slot Selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_IS_CUSTOM ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_SimObjClass "DataObj" \\ RootSel_SimObjClass "SnapShotObj" \\ RootSel_SimObj "Data Validation" \\ RootSel_Slot "Data Validation.Validation Use Extended Period" \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierSetScalarSlotValueSlotValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEditOption\ ValueNo\ TypeEnumeration\ DefaultValueNo\ OptionNo\ OptionYes: Editor\ OptionYes: Radio Buttons\ OptionYes: Slider\ \ \ IdentifierSetScalarSlotValueMinEditValue\ ValueNaN\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueMaxEditValue\ ValueNaN\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEncodeSlotName\ Value\ TypeSlotName\ DefaultValue\ \ \ IdentifierSetScalarSlotValueShowCurVal\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ } # Script: Set Up Test Model $ws.rwScriptMgr rwScript {\ \ Set Up Test Model\ \ \ OpenGlobalFunctionsSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueOpen Global Functions\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierOpenGlobalFunctionsSetSetName\ Value$MIDC_RIVERWARE_MODELS/MidC_GlobalFunctions.gfs\ TypeFileName\ DefaultValue\ \ \ IdentifierOpenGlobalFunctionsSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierOpenGlobalFunctionsSetOpenDialog\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ LoadGoalSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueLoad Opt Goals\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierLoadGoalSetSetName\ Value$MIDC_RIVERWARE_MODELS/MidC_OptGoals.opt\ TypeFileName\ DefaultValue\ \ \ IdentifierLoadGoalSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierLoadGoalSetOpenDialog\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ LoadRuleset\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueLoad Post-opt Rules\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierLoadRulesetSetName\ Value$MIDC_RIVERWARE_MODELS/MidC_PostOptRules.rls\ TypeFileName\ DefaultValue\ \ \ IdentifierLoadRulesetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierLoadRulesetOpenDialog\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ ExecuteDMI\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueInput Test Data\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierExecuteDMIDMIName\ ValueMidC Test Inputs\ TypeDmiName\ DefaultValue\ \ \ \ } # Script: Export Input Values $ws.rwScriptMgr rwScript {\ \ Export Input Values\ \ \ Memo\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierMemoExplanation\ \ Value\ Be sure to rename the Inputs folder to prevent overwriting the data when the MidC Test Export <br>Input Values DMI writes out the current model data, and create a new Inputs folder in the same <br>location.<br><br>The current action has paused script execution.\ \ TypeText\ DefaultValueThe current action has paused script execution.\ \ \ IdentifierMemoPauseExecution\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierMemoShowConfirmationDialog\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierMemoShowExplanationInDashboard\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ ExecuteDMI\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierExecuteDMIDMIName\ ValueMidC Test Export Input Values\ TypeDmiName\ DefaultValue\ \ \ \ } # Script: Load RPL Sets $ws.rwScriptMgr rwScript {\ \ Load RPL Sets\ \ \ OpenGlobalFunctionsSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueOpen Global Functions\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierOpenGlobalFunctionsSetSetName\ Value$MIDC_RIVERWARE_MODELS/MidC_GlobalFunctions.gfs\ TypeFileName\ DefaultValue\ \ \ IdentifierOpenGlobalFunctionsSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierOpenGlobalFunctionsSetOpenDialog\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ LoadGoalSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueLoad Opt Goals\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierLoadGoalSetSetName\ Value$MIDC_RIVERWARE_MODELS/MidC_OptGoals.opt\ TypeFileName\ DefaultValue\ \ \ IdentifierLoadGoalSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierLoadGoalSetOpenDialog\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ LoadRuleset\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueLoad Post-opt Rules\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierLoadRulesetSetName\ Value$MIDC_RIVERWARE_MODELS/MidC_PostOptRules.rls\ TypeFileName\ DefaultValue\ \ \ IdentifierLoadRulesetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierLoadRulesetOpenDialog\ ValueNo\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ } # Script: Remove RPL Sets $ws.rwScriptMgr rwScript {\ \ Remove RPL Sets\ \ \ RemoveRplSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueRemove Ruleset\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierRemoveRplSetSetName\ ValueLoaded Ruleset\ TypeRplSetRemovable\ DefaultValue\ \ \ IdentifierRemoveRplSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ RemoveRplSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueRemove Goal Set\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierRemoveRplSetSetName\ ValueLoaded Optimization Goal Set\ TypeRplSetRemovable\ DefaultValue\ \ \ IdentifierRemoveRplSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ RemoveRplSet\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueRemove Global Functions\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierRemoveRplSetSetName\ \ Value\ D:\MidC\Central\MidC_Central_Models\MidC_GlobalFunctions.gfs\ \ TypeRplSetRemovable\ DefaultValue\ \ \ IdentifierRemoveRplSetConfirmReplacement\ ValueNo\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ \ } # Script: Set Up Desired Elevation Table Only $ws.rwScriptMgr rwScript {\ \ Set Up Desired Elevation Table Only\ This sets up a run using Desired Elevation Table (Elevation Targets, with tolerance) and no other objectives\ \ SetScalarSlot\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueSet Desired Elevation Tolerance\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetScalarSlotValueSlotSel\ \ Value\ RootSelection Version1 \\ RootSel_Name "Set Scalar Slot Value Action: Slot Selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_SimObjClass "DataObj" \\ RootSel_SimObjClass "SnapShotObj" \\ RootSel_SimObj "Nonfederal Data" \\ RootSel_Slot "Nonfederal Data.Desired Elevation Tolerance" \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierSetScalarSlotValueSlotValue\ Value0.03048000000000003\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEditOption\ ValueYes: Editor\ TypeEnumeration\ DefaultValueNo\ OptionNo\ OptionYes: Editor\ OptionYes: Radio Buttons\ OptionYes: Slider\ \ \ IdentifierSetScalarSlotValueMinEditValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueMaxEditValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEncodeSlotName\ Value\ TypeSlotName\ DefaultValue\ \ \ IdentifierSetScalarSlotValueShowCurVal\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize BIAS Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up HK Objective Only $ws.rwScriptMgr rwScript {\ \ Set Up HK Objective Only\ This applies H/K Objective Only\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Maximize Weighted HK Only\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Miniimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Uniform Reservoir Draft Feet Only $ws.rwScriptMgr rwScript {\ \ Set Up Uniform Reservoir Draft Feet Only\ This applies Uniform Reservoir Draft Feet Only\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable HK Objective Only\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Miniimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Maximize 0600 Storage Only $ws.rwScriptMgr rwScript {\ \ Set Up Maximize 0600 Storage Only\ This applies objectives to Maximize Storage at each 0600 only\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Pool Elevation Ramp Limits Only $ws.rwScriptMgr rwScript {\ \ Set Up Pool Elevation Ramp Limits Only\ This applies objectives to Pool Elevation Ramp Limits Only\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Outflow Ramp Limits Only $ws.rwScriptMgr rwScript {\ \ Set Up Outflow Ramp Limits Only\ This applies objectives to Outflow Ramp Limits Only\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Proportional Reservoir Draft Volume Only $ws.rwScriptMgr rwScript {\ \ Set Up Proportional Reservoir Draft Volume Only\ This applies objectives to Proportional Reservoir Draft Volume Only\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Balanced Objectives Run (Proportional Draft Vol, Equal Flows across Projects, HK Objective, and Minimize Bias Delta) $ws.rwScriptMgr rwScript {\ \ Set Up Balanced Objectives Run (Proportional Draft Vol, Equal Flows across Projects, HK Objective, and Minimize Bias Delta)\ This applies Proportional Reservoir Draft Volume, Equal Flows (with tolerance) ,H/K Objective, and Minimize Bias Delta\ \ SetScalarSlot\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueSet Equal Flows Tolerance\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetScalarSlotValueSlotSel\ \ Value\ RootSelection Version1 \\ RootSel_Name "Set Scalar Slot Value Action: Slot Selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_SimObjClass "DataObj" \\ RootSel_SimObjClass "SnapShotObj" \\ RootSel_SimObj "Nonfederal Data" \\ RootSel_Slot "Nonfederal Data.Equal Flows Tolerance" \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierSetScalarSlotValueSlotValue\ Value283.16846591999990324\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEditOption\ ValueYes: Editor\ TypeEnumeration\ DefaultValueNo\ OptionNo\ OptionYes: Editor\ OptionYes: Radio Buttons\ OptionYes: Slider\ \ \ IdentifierSetScalarSlotValueMinEditValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueMaxEditValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEncodeSlotName\ Value\ TypeSlotName\ DefaultValue\ \ \ IdentifierSetScalarSlotValueShowCurVal\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Balanced Objectives with Reshaped Bias $ws.rwScriptMgr rwScript {\ \ Set Up Balanced Objectives with Reshaped Bias\ This applies Proportional Reservoir Draft Volume, Equal Flows (with tolerance) ,H/K Objective, and Minimize Bias Delta\ \ SetScalarSlot\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueSet Equal Flows Tolerance\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetScalarSlotValueSlotSel\ \ Value\ RootSelection Version1 \\ RootSel_Name "Set Scalar Slot Value Action: Slot Selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_SimObjClass "DataObj" \\ RootSel_SimObjClass "SnapShotObj" \\ RootSel_SimObj "Nonfederal Data" \\ RootSel_Slot "Nonfederal Data.Equal Flows Tolerance" \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierSetScalarSlotValueSlotValue\ Value283.16846591999990324\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEditOption\ ValueYes: Editor\ TypeEnumeration\ DefaultValueNo\ OptionNo\ OptionYes: Editor\ OptionYes: Radio Buttons\ OptionYes: Slider\ \ \ IdentifierSetScalarSlotValueMinEditValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueMaxEditValue\ Value0.00000000000000000\ TypeSlotValue\ DefaultValueNaN\ SlotNameSettingIdSetScalarSlotValueSlotSel\ SlotColSettingId\ UnitTypeSettingId\ \ \ IdentifierSetScalarSlotValueEncodeSlotName\ Value\ TypeSlotName\ DefaultValue\ \ \ IdentifierSetScalarSlotValueShowCurVal\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Proprotional Draft Volume Plus HK Objective Plus Minimize Bias Delta $ws.rwScriptMgr rwScript {\ \ Set Up Proprotional Draft Volume Plus HK Objective Plus Minimize Bias Delta\ This applies Proportional Reservoir Draft Volume (min and max request hours only), H/K Objective, and Minimize BIAS Delta\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Uniform Reservoir Draft Feet Plus HK Objective Plus Minimize Bias Delta $ws.rwScriptMgr rwScript {\ \ Set Up Uniform Reservoir Draft Feet Plus HK Objective Plus Minimize Bias Delta\ This applies Uniform Reservoir Draft Feet plus H/K Objective Plus Minimize Bias Delta\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Set Up Maximize 0600 Storage Plus HK Objective Plus Minimize Bias Delta $ws.rwScriptMgr rwScript {\ \ Set Up Maximize 0600 Storage Plus HK Objective Plus Minimize Bias Delta\ This applies objectives to Maximize Storage at each 0600 and secondarily maximize weighted H/K plus Minimize Bias Delta\ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Maximize 0600 Storage\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMaximize 0600 Storage\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueHK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Pool Elevation Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValuePool Elevation Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Outflow Ramp Limits\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueOutflow Ramp Limits\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Desired Elevation Table\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueDesired Elevation Table\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Proportional Reservoir Draft Volume\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueProportional Reservoir Draft Volume\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Reshape Bias for HK Objective\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueReshape Bias for HK Objective\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Equal Flows Across Projects\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueEqual Flows Across Projects\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Uniform Reservoir Draft Feet\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueUniform Reservoir Draft Feet\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Minimize Bias Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Bias Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Minimize Outflow Delta\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Optimization Goal Set\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueMinimize Outflow Delta\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ } # Script: Complete Opt Run $ws.rwScriptMgr rwScript {\ \ Complete Opt Run\ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueSimulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueOptimization\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueRulebased Simulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Baseline Values Rules\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Ruleset\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueBaseline Values\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ } # Script: Baseline Run with Baseline Snapshot $ws.rwScriptMgr rwScript {\ \ Baseline Run with Baseline Snapshot\ \ 262\ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueSimulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueOptimization\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueRulebased Simulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueDisable Basline Values Rules\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Ruleset\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueBaseline Values\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueDisable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ CreateSnapshot\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueBaseline Snapshot\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierCreateSnapshotSlots\ \ Value\ RootSelection Version1 \\ RootSel_Name "Create Snapshot Action: Slot Selection" \\ RootSel_UserLabel "" \\ RootSel_UseUserLabel false \\ RootSel_RootType ROOT_SUBCLASS_SLOT \\ RoolSel_AllowSlots_Physical RoolSel_AllowSlots_Account RoolSel_AllowSlots_Supply RoolSel_AllowSlots_Exchange RoolSel_AllowSlots_ExchangeSply RoolSel_AllowSlots_Payback RoolSel_AllowSlots_PaybackSply \\ RootSel_SelMode SELMODE_SLOT_PHYSICAL \\ RootSel_SubBasin_WildAllowed false \\ RootSel_SubBasin_Wildcarded false \\ RootFilter FILTER_SIMOBJ_NAME_WILDCARD ROOT_SUBCLASS_SIMOBJ \\ RootFilter FILTER_SIMOBJ_HAS_ACCOUNT ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Account" "Has Account" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_SUBBASIN ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In SubBasin" "In SubBasin" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_IN_CLUSTER ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "In Object Cluster" "In Object Cluster" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SIMOBJ_HAS_ATTRIB_VALUE ROOT_SUBCLASS_SIMOBJ \\ RootFilt_Dat "Has Attribute Value" "Has Attribute Value" "" rf_OFF rf_HIDE rf_POS \\ RootSel_SimObj_WildAllowed false \\ RootSel_SimObj_Wildcarded false \\ RootSel_SimObj_ExclAggObjElems false \\ RootFilter FILTER_EXCHANGE_NAME_WILDCARD ROOT_SUBCLASS_EXCHANGE \\ RootSel_Exch_WildAllowed false \\ RootSel_Exch_Wildcarded false \\ RootFilter FILTER_ACCOUNT_NAME_WILDCARD ROOT_SUBCLASS_ACCOUNT \\ RootFilter FILTER_ACCOUNT_WATER_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Type" "Water Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_WATER_OWNER ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Water Owner" "Water Owner" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_JUNIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Junior To" "Junior To" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_ACCOUNT_SENIOR_TO_DATE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Senior To" "Senior To" "" rf_OFF rf_HIDE rf_POS \\ RootSel_Acct_WildAllowed false \\ RootSel_Acct_Wildcarded false \\ RootSel_InclStorageAccts true \\ RootSel_InclDiversionAccts true \\ RootSel_InclInstreamFlowAccts true \\ RootSel_InclPassThroughAccts true \\ RootFilter FILTER_PAYBACK_NAME_WILDCARD ROOT_SUBCLASS_PAYBACK \\ RootSel_Pback_WildAllowed false \\ RootSel_Pback_Wildcarded false \\ RootFilter FILTER_SUPPLY_NAME_WILDCARD ROOT_SUBCLASS_SUPPLY \\ RootFilter FILTER_SUPPLY_RELEASE_TYPE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Release Type" "Release Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_DESTINATION ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Destination" "Destination" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ROLE ROOT_SUBCLASS_ACCOUNT \\ RootFilt_Dat "Supply Role" "Role" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SUPPLY_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootSel_Supply_WildAllowed false \\ RootSel_Supply_Wildcarded false \\ RootSel_Supply_ShowFromAccts true \\ RootSel_Supply_ShowToAccts false \\ RootSel_ShowSupplies_InOut true \\ RootSel_ShowSupplies_DivRet true \\ RootSel_ShowSupplies_Trans true \\ RootFilter FILTER_SLOT_NAME_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_COL_LABEL_WILDCARD ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_UNIT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Unit Type" "Unit Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_TYPE ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Type" "Type" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_RPL_EXPR ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_TIMESTEP ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Timestep Size" "Timestep" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ALLOWS_FLAG ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Allows Flag" "Allows Flag" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_ATTRIB ROOT_SUBCLASS_SLOT \\ RootFilt_Dat "Slot Attrib" "Attrib" "" rf_OFF rf_HIDE rf_POS \\ RootFilter FILTER_SLOT_HAS_DESCRIPT ROOT_SUBCLASS_SLOT \\ RootFilter FILTER_SLOT_USES_OPT_LIMITS ROOT_SUBCLASS_SLOT \\ RootSel_Slot_WildAllowed false \\ RootSel_Slot_Wildcarded false \\ RootSel_SlotTypeBits_InclMask 0 \\ RootSel_SlotTypeBits_ExclMask 0 \\ RootSel_AllowAggSeriesCols false \\ RootSel_AllowTableSeriesCols false \\ RootSel_AllowAggTableCols false \\ RootSel_ShowAggSeriesCols false \\ RootSel_ShowTableSeriesCols false \\ RootSel_ShowAggTableCols false \\ RootSel_RequiresSlotColRefs false \\ RootSel_SimObjClass "DataObj" \\ RootSel_SimObjClass "SnapShotObj" \\ RootSel_SimObjClass "Reservoir" \\ RootSel_SimObjClass "PowerReservoir" \\ RootSel_SimObjClass "LevelPowerReservoir" \\ RootSel_SimObjClass "Reach" \\ RootSel_SimObj "Chief Joseph Constraints" \\ RootSel_SimObj "Federal Constraints" \\ RootSel_SimObj "Grand Coulee Constraints" \\ RootSel_SimObj "Nonfederal Data" \\ RootSel_SimObj "Requests" \\ RootSel_SimObj "Chief Joseph" \\ RootSel_SimObj "Grand Coulee" \\ RootSel_SimObj "Priest Rapids" \\ RootSel_SimObj "Rock Island" \\ RootSel_SimObj "Rocky Reach" \\ RootSel_SimObj "Wanapum" \\ RootSel_SimObj "Wells" \\ RootSel_SimObj "Vernita Bar" \\ RootSel_Slot "Chief Joseph Constraints.Bias" \\ RootSel_Slot "Federal Constraints.Bias" \\ RootSel_Slot "Grand Coulee Constraints.Bias" \\ RootSel_Slot "Chief Joseph.Energy In Storage" \\ RootSel_Slot "Nonfederal Data.Energy In Storage" \\ RootSel_Slot "Priest Rapids.Energy In Storage" \\ RootSel_Slot "Rock Island.Energy In Storage" \\ RootSel_Slot "Rocky Reach.Energy In Storage" \\ RootSel_Slot "Wanapum.Energy In Storage" \\ RootSel_Slot "Wells.Energy In Storage" \\ RootSel_Slot "Chief Joseph.Inflow" \\ RootSel_Slot "Grand Coulee.Inflow" \\ RootSel_Slot "Priest Rapids.Inflow" \\ RootSel_Slot "Rock Island.Inflow" \\ RootSel_Slot "Rocky Reach.Inflow" \\ RootSel_Slot "Vernita Bar.Inflow" \\ RootSel_Slot "Wanapum.Inflow" \\ RootSel_Slot "Wells.Inflow" \\ RootSel_Slot "Requests.Nonfed Delivered Energy" \\ RootSel_Slot "Nonfederal Data.NonFederal Energy In Storage Cumulative" \\ RootSel_Slot "Chief Joseph.Outflow" \\ RootSel_Slot "Grand Coulee.Outflow" \\ RootSel_Slot "Priest Rapids.Outflow" \\ RootSel_Slot "Rock Island.Outflow" \\ RootSel_Slot "Rocky Reach.Outflow" \\ RootSel_Slot "Vernita Bar.Outflow" \\ RootSel_Slot "Wanapum.Outflow" \\ RootSel_Slot "Wells.Outflow" \\ RootSel_Slot "Chief Joseph.Pool Elevation" \\ RootSel_Slot "Grand Coulee.Pool Elevation" \\ RootSel_Slot "Priest Rapids.Pool Elevation" \\ RootSel_Slot "Rock Island.Pool Elevation" \\ RootSel_Slot "Rocky Reach.Pool Elevation" \\ RootSel_Slot "Wanapum.Pool Elevation" \\ RootSel_Slot "Wells.Pool Elevation" \\ RootSel_Slot "Chief Joseph.Power" \\ RootSel_Slot "Grand Coulee.Power" \\ RootSel_Slot "Priest Rapids.Power" \\ RootSel_Slot "Rock Island.Power" \\ RootSel_Slot "Rocky Reach.Power" \\ RootSel_Slot "Wanapum.Power" \\ RootSel_Slot "Wells.Power" \\ RootSel_Slot "Chief Joseph.Power Coefficient" \\ RootSel_Slot "Grand Coulee.Power Coefficient" \\ RootSel_Slot "Priest Rapids.Power Coefficient" \\ RootSel_Slot "Rock Island.Power Coefficient" \\ RootSel_Slot "Rocky Reach.Power Coefficient" \\ RootSel_Slot "Wanapum.Power Coefficient" \\ RootSel_Slot "Wells.Power Coefficient" \\ RootSel_Slot "Chief Joseph.Regulated Spill" \\ RootSel_Slot "Grand Coulee.Regulated Spill" \\ RootSel_Slot "Priest Rapids.Regulated Spill" \\ RootSel_Slot "Rock Island.Regulated Spill" \\ RootSel_Slot "Rocky Reach.Regulated Spill" \\ RootSel_Slot "Wanapum.Regulated Spill" \\ RootSel_Slot "Wells.Regulated Spill" \\ RootSel_Slot "Chief Joseph.Tailwater Elevation" \\ RootSel_Slot "Grand Coulee.Tailwater Elevation" \\ RootSel_Slot "Priest Rapids.Tailwater Elevation" \\ RootSel_Slot "Rock Island.Tailwater Elevation" \\ RootSel_Slot "Rocky Reach.Tailwater Elevation" \\ RootSel_Slot "Wanapum.Tailwater Elevation" \\ RootSel_Slot "Wells.Tailwater Elevation" \\ RootSel_Slot "Requests.Total Delivered Energy" \\ RootSel_Slot "Requests.Total Nonfed Generation" \\ RootSel_Slot "Chief Joseph.Turbine Release" \\ RootSel_Slot "Grand Coulee.Turbine Release" \\ RootSel_Slot "Priest Rapids.Turbine Release" \\ RootSel_Slot "Rock Island.Turbine Release" \\ RootSel_Slot "Rocky Reach.Turbine Release" \\ RootSel_Slot "Wanapum.Turbine Release" \\ RootSel_Slot "Wells.Turbine Release" \\ RootSel_End \\ \ \ TypeSelection\ \ \ IdentifierCreateSnapshotName\ ValueBaseline\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierCreateSnapshotReplaceExisting\ ValueYes\ TypeBoolean\ DefaultValueFalse\ TrueStringYes\ FalseStringNo\ \ \ \ } # Script: Alternative Run Plot Baseline $ws.rwScriptMgr rwScript {\ \ Alternative Run Plot Baseline\ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueSimulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueOptimization\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ EnableRplItem\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ ValueEnable Baseline Values Rules\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierEnableRplItemSetName\ ValueLoaded Ruleset\ TypeEnumeration\ DefaultValue\ OptionsAreRplSetsTrue\ \ \ IdentifierEnableRplItemItemName\ ValueBaseline Values\ TypeRplItemName\ DefaultValue\ \ \ IdentifierEnableRplItemNewStatus\ ValueEnable\ TypeBoolean\ DefaultValueFalse\ TrueStringEnable\ FalseStringDisable\ \ \ \ SetController\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierSetControllerControllerName\ ValueRulebased Simulation\ TypeControllerName\ DefaultValueSimulation\ \ \ \ ExecuteRun\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ \ } # Script: Build_RICO_Model_Reports $ws.rwScriptMgr rwScript {\ \ Build_RICO_Model_Reports\ Builds model reports for use by RICO\ 458\ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonfed_Pool_Elevation_Graph\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonFed_Tailwater_Elevation_Graph\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonFed_Outflow_Graph\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonFed_Turbine_Release_Graph\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonFed_Regulated_Spill_Graph\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonFederal_Generation_Graph\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueConstraint_Evaluation_All_Graphs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueGrand_Coulee_BIAS\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueWells_Graphs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueRocky_Reach_Graphs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueRock_Island_Graphs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueWanapum_Graphs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValuePriest_Rapids_Graphs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueNonfed Pool Elevation Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueTailrace Elevations Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueTotal Project Discharge Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueTurbine Discharge Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueSpill Discharge Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueInflow Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueGeneration Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueFederal BIAS Plan Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueConstraint Evaluation Table II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValueStranding Band Inputs and Outputs\ TypeOutputDeviceName\ DefaultValue\ \ \ \ GenerateOutputDevice\ \ IdentifierrwScriptActionEnabled\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptShowInMgr\ ValueYes\ TypeBoolean\ DefaultValueTrue\ TrueStringYes\ FalseStringNo\ \ \ IdentifierrwScriptDisplayText\ Value\ TypeSingleLineText\ DefaultValue\ \ \ IdentifierGenerateOutputDeviceDeviceName\ ValuePriest Rapids Graph w Stranding Bands II\ TypeOutputDeviceName\ DefaultValue\ \ \ \ } # Show Script Manager On Model Load $ws.rwScriptMgr rwShowScriptMgrOnModelLoad {\ \ false\ All Scripts\ \ } # Section: Object Attribute Manager Section {Object Attribute Manager} # Section: Object Attribute Set "$ws.objectAttribMgr" objectAttribSet { \ \ \ \ \ \ \ \ \ \ \ \ \ \ } # Section: END (successful completion) Section {Done}